diff http response: status code

This commit is contained in:
debugtalk
2017-06-21 12:17:51 +08:00
parent c21646a01f
commit 8479a82983
2 changed files with 38 additions and 0 deletions

View File

@@ -32,3 +32,16 @@ def parse_response_object(resp_obj):
'headers': resp_obj.headers,
'content': resp_content
}
def diff_response(resp_obj, expected_resp_json):
diff_content = {}
resp_info = parse_response_object(resp_obj)
expected_status_code = expected_resp_json.get('status_code', 200)
if resp_info['status_code'] != int(expected_status_code):
diff_content['status_code'] = {
'value': resp_info['status_code'],
'expected': expected_status_code
}
return diff_content

View File

@@ -1,4 +1,5 @@
import os
import random
import requests
from ate import utils
from ate import exception
@@ -52,3 +53,27 @@ class TestUtils(ApiServerUnittest):
self.assertIn('Content-Type', parse_result['headers'])
self.assertIn('Content-Length', parse_result['headers'])
self.assertTrue(str, type(parse_result['content']))
def test_diff_response_status_code_equal(self):
status_code = random.randint(200, 511)
url = "http://127.0.0.1:5000/status_code/%d" % status_code
resp_obj = requests.get(url)
expected_resp_json = {
'status_code': status_code
}
diff_content = utils.diff_response(resp_obj, expected_resp_json)
self.assertFalse(diff_content)
def test_diff_response_status_code_not_equal(self):
status_code = random.randint(200, 511)
url = "http://127.0.0.1:5000/status_code/%d" % status_code
resp_obj = requests.get(url)
expected_resp_json = {
'status_code': 512
}
diff_content = utils.diff_response(resp_obj, expected_resp_json)
print('diff_content', diff_content)
self.assertIn('value', diff_content['status_code'])
self.assertIn('expected', diff_content['status_code'])
self.assertEqual(diff_content['status_code']['value'], status_code)
self.assertEqual(diff_content['status_code']['expected'], 512)