des_body = self._deserialize(req.body,
req.best_match_content_type())
data = des_body and des_body.get(self._resource_name, None)
- param_value = data and data.get(param_name, None)
+ if not data:
+ msg = ("Failed to parse request. Resource: " +
+ self._resource_name + " not found in request body")
+ for line in msg.split('\n'):
+ LOG.error(line)
+ raise exc.HTTPBadRequest(msg)
+ param_value = data.get(param_name, None)
if not param_value:
# 2- parse request headers
# prepend param name with a 'x-' prefix
self.assertEqual(show_port_res.status_int, 430)
LOG.debug("_test_show_port_portnotfound - format:%s - END", format)
+ def _test_create_port_noreqbody(self, format):
+ LOG.debug("_test_create_port_noreqbody - format:%s - START", format)
+ content_type = "application/%s" % format
+ network_id = self._create_network(format)
+ port_id = self._create_port(network_id, None, format,
+ custom_req_body='')
+ show_port_req = testlib.show_port_request(self.tenant_id,
+ network_id, port_id, format)
+ show_port_res = show_port_req.get_response(self.api)
+ self.assertEqual(show_port_res.status_int, 200)
+ port_data = self._port_serializer.deserialize(
+ show_port_res.body, content_type)
+ self.assertEqual(port_id, port_data['port']['id'])
+ LOG.debug("_test_create_port_noreqbody - format:%s - END", format)
+
def _test_create_port(self, format):
LOG.debug("_test_create_port - format:%s - START", format)
content_type = "application/%s" % format
def test_create_port_xml(self):
self._test_create_port('xml')
+ def test_create_port_noreqbody_json(self):
+ self._test_create_port_noreqbody('json')
+
+ def test_create_port_noreqbody_xml(self):
+ self._test_create_port_noreqbody('xml')
+
def test_create_port_networknotfound_json(self):
self._test_create_port_networknotfound('json')
method = 'POST'
path = "/tenants/%(tenant_id)s/networks/" \
"%(network_id)s/ports.%(format)s" % locals()
- data = custom_req_body or {'port': {'port-state': '%s' % port_state}}
+ data = custom_req_body or port_state and \
+ {'port': {'port-state': '%s' % port_state}}
content_type = "application/%s" % format
- body = Serializer().serialize(data, content_type)
+ body = data and Serializer().serialize(data, content_type)
return create_request(path, body, content_type, method)