diff --git a/ate/response.py b/ate/response.py index d97e4a89..9b704137 100644 --- a/ate/response.py +++ b/ate/response.py @@ -1,4 +1,6 @@ -from ate import utils, exception +from collections import OrderedDict + +from ate import exception, utils class ResponseObject(object): @@ -63,20 +65,18 @@ class ResponseObject(object): {"resp_content": "content"}, {"resp_content_person_first_name": "content.person.name.first_name"} ] - @return (list) variable binds list + @return (OrderDict) variable binds ordered dict """ - extracted_variables_mapping_list = [] + extracted_variables_mapping = OrderedDict() for extract_bind in extract_binds: for key, field in extract_bind.items(): if not isinstance(field, utils.string_type): raise exception.ParamsError("invalid extract_binds in testcase extract_binds!") - extracted_variables_mapping_list.append( - {key: self.extract_field(field)} - ) + extracted_variables_mapping[key] = self.extract_field(field) - return extracted_variables_mapping_list + return extracted_variables_mapping def validate(self, validators, variables_mapping): """ Bind named validators to value within the context. diff --git a/tests/test_response.py b/tests/test_response.py index 8ad281bd..94874571 100644 --- a/tests/test_response.py +++ b/tests/test_response.py @@ -59,34 +59,34 @@ class TestResponse(ApiServerUnittest): {"resp_content_cities_1": "content.person.cities.1"} ] resp_obj = response.ResponseObject(resp) - extract_binds_dict_list = resp_obj.extract_response(extract_binds_list) + extract_binds_dict = resp_obj.extract_response(extract_binds_list) self.assertEqual( - extract_binds_dict_list[0]["resp_status_code"], + extract_binds_dict["resp_status_code"], 200 ) self.assertEqual( - extract_binds_dict_list[1]["resp_headers_content_type"], + extract_binds_dict["resp_headers_content_type"], "application/json" ) self.assertEqual( - extract_binds_dict_list[2]["resp_content_body_success"], + extract_binds_dict["resp_content_body_success"], False ) self.assertEqual( - extract_binds_dict_list[3]["resp_content_content_success"], + extract_binds_dict["resp_content_content_success"], False ) self.assertEqual( - extract_binds_dict_list[4]["resp_content_text_success"], + extract_binds_dict["resp_content_text_success"], False ) self.assertEqual( - extract_binds_dict_list[5]["resp_content_person_first_name"], + extract_binds_dict["resp_content_person_first_name"], "Leo" ) self.assertEqual( - extract_binds_dict_list[6]["resp_content_cities_1"], + extract_binds_dict["resp_content_cities_1"], "Shenzhen" ) @@ -143,9 +143,9 @@ class TestResponse(ApiServerUnittest): ] resp_obj = response.ResponseObject(resp) - extract_binds_dict_list = resp_obj.extract_response(extract_binds_list) + extract_binds_dict = resp_obj.extract_response(extract_binds_list) self.assertEqual( - extract_binds_dict_list[0]["resp_content_body"], + extract_binds_dict["resp_content_body"], "abc" ) @@ -164,9 +164,9 @@ class TestResponse(ApiServerUnittest): {"resp_content_body": "content"} ] resp_obj = response.ResponseObject(resp) - extract_binds_dict_list = resp_obj.extract_response(extract_binds_list) + extract_binds_dict = resp_obj.extract_response(extract_binds_list) self.assertEqual( - extract_binds_dict_list[0]["resp_content_body"], + extract_binds_dict["resp_content_body"], "" )