mirror of
https://github.com/httprunner/httprunner.git
synced 2026-06-06 16:29:37 +08:00
make extract_response return as ordered dict
This commit is contained in:
@@ -1,4 +1,6 @@
|
|||||||
from ate import utils, exception
|
from collections import OrderedDict
|
||||||
|
|
||||||
|
from ate import exception, utils
|
||||||
|
|
||||||
|
|
||||||
class ResponseObject(object):
|
class ResponseObject(object):
|
||||||
@@ -63,20 +65,18 @@ class ResponseObject(object):
|
|||||||
{"resp_content": "content"},
|
{"resp_content": "content"},
|
||||||
{"resp_content_person_first_name": "content.person.name.first_name"}
|
{"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 extract_bind in extract_binds:
|
||||||
for key, field in extract_bind.items():
|
for key, field in extract_bind.items():
|
||||||
if not isinstance(field, utils.string_type):
|
if not isinstance(field, utils.string_type):
|
||||||
raise exception.ParamsError("invalid extract_binds in testcase extract_binds!")
|
raise exception.ParamsError("invalid extract_binds in testcase extract_binds!")
|
||||||
|
|
||||||
extracted_variables_mapping_list.append(
|
extracted_variables_mapping[key] = self.extract_field(field)
|
||||||
{key: self.extract_field(field)}
|
|
||||||
)
|
|
||||||
|
|
||||||
return extracted_variables_mapping_list
|
return extracted_variables_mapping
|
||||||
|
|
||||||
def validate(self, validators, variables_mapping):
|
def validate(self, validators, variables_mapping):
|
||||||
""" Bind named validators to value within the context.
|
""" Bind named validators to value within the context.
|
||||||
|
|||||||
@@ -59,34 +59,34 @@ class TestResponse(ApiServerUnittest):
|
|||||||
{"resp_content_cities_1": "content.person.cities.1"}
|
{"resp_content_cities_1": "content.person.cities.1"}
|
||||||
]
|
]
|
||||||
resp_obj = response.ResponseObject(resp)
|
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(
|
self.assertEqual(
|
||||||
extract_binds_dict_list[0]["resp_status_code"],
|
extract_binds_dict["resp_status_code"],
|
||||||
200
|
200
|
||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
extract_binds_dict_list[1]["resp_headers_content_type"],
|
extract_binds_dict["resp_headers_content_type"],
|
||||||
"application/json"
|
"application/json"
|
||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
extract_binds_dict_list[2]["resp_content_body_success"],
|
extract_binds_dict["resp_content_body_success"],
|
||||||
False
|
False
|
||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
extract_binds_dict_list[3]["resp_content_content_success"],
|
extract_binds_dict["resp_content_content_success"],
|
||||||
False
|
False
|
||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
extract_binds_dict_list[4]["resp_content_text_success"],
|
extract_binds_dict["resp_content_text_success"],
|
||||||
False
|
False
|
||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
extract_binds_dict_list[5]["resp_content_person_first_name"],
|
extract_binds_dict["resp_content_person_first_name"],
|
||||||
"Leo"
|
"Leo"
|
||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
extract_binds_dict_list[6]["resp_content_cities_1"],
|
extract_binds_dict["resp_content_cities_1"],
|
||||||
"Shenzhen"
|
"Shenzhen"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -143,9 +143,9 @@ class TestResponse(ApiServerUnittest):
|
|||||||
]
|
]
|
||||||
resp_obj = response.ResponseObject(resp)
|
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(
|
self.assertEqual(
|
||||||
extract_binds_dict_list[0]["resp_content_body"],
|
extract_binds_dict["resp_content_body"],
|
||||||
"abc"
|
"abc"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -164,9 +164,9 @@ class TestResponse(ApiServerUnittest):
|
|||||||
{"resp_content_body": "content"}
|
{"resp_content_body": "content"}
|
||||||
]
|
]
|
||||||
resp_obj = response.ResponseObject(resp)
|
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(
|
self.assertEqual(
|
||||||
extract_binds_dict_list[0]["resp_content_body"],
|
extract_binds_dict["resp_content_body"],
|
||||||
""
|
""
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user