refactor: extract status_code

This commit is contained in:
debugtalk
2018-07-25 11:25:12 +08:00
parent 4a87af51e7
commit 22632d7110
2 changed files with 47 additions and 1 deletions

View File

@@ -72,7 +72,18 @@ class ResponseObject(object):
top_query = field
sub_query = None
if top_query == "cookies":
# status_code
if top_query == "status_code":
if sub_query:
# status_code.XX
err_msg = u"ParamsError: {}\n".format(field)
logger.log_error(err_msg)
raise exceptions.ParamsError(err_msg)
return self.status_code
# cookies
elif top_query == "cookies":
cookies = self.cookies
try:
return cookies[sub_query]
@@ -82,6 +93,8 @@ class ResponseObject(object):
err_msg += u"attribute: {}".format(sub_query)
logger.log_error(err_msg)
raise exceptions.ParamsError(err_msg)
# elapsed
elif top_query == "elapsed":
if sub_query in ["days", "seconds", "microseconds"]:
return getattr(self.elapsed, sub_query)

View File

@@ -27,6 +27,39 @@ class TestResponse(ApiServerUnittest):
resp_obj = response.ResponseObject(resp)
self.assertEqual(bytes, type(resp_obj.content))
def test_extract_response_status_code(self):
resp = requests.post(
url="http://127.0.0.1:3458/anything",
json={
'success': False,
"person": {
"name": {
"first_name": "Leo",
"last_name": "Lee",
},
"age": 29,
"cities": ["Guangzhou", "Shenzhen"]
}
}
)
resp_obj = response.ResponseObject(resp)
extract_binds_list = [
{"resp_status_code": "status_code"}
]
extract_binds_dict = resp_obj.extract_response(extract_binds_list)
self.assertEqual(
extract_binds_dict["resp_status_code"],
200
)
extract_binds_list = [
{"resp_status_code": "status_code.xx"}
]
with self.assertRaises(exceptions.ParamsError):
resp_obj.extract_response(extract_binds_list)
def test_extract_response_json(self):
resp = requests.post(
url="http://127.0.0.1:3458/anything",