Commit c1370588 authored by Cédric Le Ninivin's avatar Cédric Le Ninivin

request: Fix and update test

parent 2967180b
...@@ -277,10 +277,10 @@ class Recipe(object): ...@@ -277,10 +277,10 @@ class Recipe(object):
def _getFilteredParameterDict(self, partition_dict, return_parameter_list): def _getFilteredParameterDict(self, partition_dict, return_parameter_list):
result = {} result = {}
parameters = json_loads_byteified(partition_dict.get("parameters", "{}")) parameters = partition_dict.get("connection_parameters", "{}")
for key in return_parameter_list: for key in return_parameter_list:
if key in parameters: if key in parameters:
result[key] = parameters["key"] result[key] = parameters[key]
return result return result
def install(self): def install(self):
...@@ -349,7 +349,7 @@ class JSONCodec(object): ...@@ -349,7 +349,7 @@ class JSONCodec(object):
return {} return {}
def _getFilteredParameterDict(self, partition_dict, return_parameter_list): def _getFilteredParameterDict(self, partition_dict, return_parameter_list):
parameters = json_loads_byteified(partition.get("parameters", "{}")) parameters = partition_dict.get("connection_parameters", "{}")
if JSON_SERIALISED_MAGIC_KEY in parameters: if JSON_SERIALISED_MAGIC_KEY in parameters:
return json.loads(parameters[JSON_SERIALISED_MAGIC_KEY]) return json.loads(parameters[JSON_SERIALISED_MAGIC_KEY])
return {} return {}
......
...@@ -202,33 +202,77 @@ class RecipejIOTestMixin: ...@@ -202,33 +202,77 @@ class RecipejIOTestMixin:
]) ])
with httmock.HTTMock(api_handler.request_handler): with httmock.HTTMock(api_handler.request_handler):
with LogCapture() as log: with LogCapture() as log:
#import pdb; pdb.set_trace()
self.recipe(self.buildout, "request", self.options) self.recipe(self.buildout, "request", self.options)
log.check( log.check(
('request', 'DEBUG', ('request', 'DEBUG',
'No parameter to return to main instance.Be careful about that...'), 'No parameter to return to main instance.Be careful about that...'),
) )
expected_request_body = {
"software_release_uri": "foo.cfg",
"title": "MyInstance",
"portal_type": "Software Instance",
"compute_partition_id": "slappartx12",
"state": "started",
"compute_node_id": "COMP-321",
"software_type": "RootSoftwareInstance"
}
if self.called_partition_parameter_kw:
expected_request_body["parameters"] = json.dumps(self.called_partition_parameter_kw)
self.assertEqual( self.assertEqual(
api_handler.request_payload_list[0], json.dumps({ api_handler.request_payload_list[0], json.dumps(expected_request_body))
"software_release_uri": "foo.cfg",
"title": "MyInstance",
"portal_type": "Software Instance",
"compute_partition_id": "slappartx12",
"state": "started",
"compute_node_id": "COMP-321",
"software_type": "RootSoftwareInstance"
}))
def test_return_in_options_logs(self): def test_return_in_options_logs(self):
pass api_handler = APIRequestHandler([
("/api/get", json.dumps(self.instance_data)),
])
self.options['return'] = 'anything'
with httmock.HTTMock(api_handler.request_handler):
with LogCapture() as log:
self.recipe(self.buildout, "request", self.options)
log.check()
expected_request_body = {
"software_release_uri": "foo.cfg",
"title": "MyInstance",
"portal_type": "Software Instance",
"compute_partition_id": "slappartx12",
"state": "started",
"compute_node_id": "COMP-321",
"software_type": "RootSoftwareInstance"
}
if self.called_partition_parameter_kw:
expected_request_body["parameters"] = json.dumps(self.called_partition_parameter_kw)
self.assertEqual(
api_handler.request_payload_list[0], json.dumps(expected_request_body))
self.assertEqual(self.options["connection-anything"], "done")
def test_return_not_ready(self): """ def test_return_not_ready(self):
pass pass
def test_return_ready(self): def test_return_ready(self):
pass pass
"""
class RequestjIOTest(RecipejIOTestMixin, unittest.TestCase): class RequestjIOTest(RecipejIOTestMixin, unittest.TestCase):
recipe = request.Recipe recipe = request.Recipe
connection_parameter_dict_empty = {} connection_parameter_dict_empty = {}
connection_parameter_dict = {"foo": "bar"} connection_parameter_dict = {"anything": "done"}
called_partition_parameter_kw = None
class RequestjIOAPIOptionalTest(RecipejIOTestMixin, unittest.TestCase):
recipe = request.RequestOptional
connection_parameter_dict_empty = {}
connection_parameter_dict = {"anything": "done"}
called_partition_parameter_kw = None
class RequestjIOAPIJSONEncodedTest(RecipejIOTestMixin, unittest.TestCase):
recipe = request.RequestJSONEncoded
connection_parameter_dict_empty = {}
connection_parameter_dict = {"_": '{"anything": "done"}'}
called_partition_parameter_kw = {"_": "{}"}
class RequestjIOAPIOptionalJSONEncodedTest(RecipejIOTestMixin, unittest.TestCase):
recipe = request.RequestOptionalJSONEncoded
connection_parameter_dict_empty = {}
connection_parameter_dict = {"_": '{"anything": "done"}'}
called_partition_parameter_kw = {"_": "{}"}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment