From 8479a8298398b82155f29f9b7ba5b6953ab0260c Mon Sep 17 00:00:00 2001 From: debugtalk Date: Wed, 21 Jun 2017 12:17:51 +0800 Subject: [PATCH] diff http response: status code --- ate/utils.py | 13 +++++++++++++ test/test_utils.py | 25 +++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/ate/utils.py b/ate/utils.py index 8698f4b3..c3ea3433 100644 --- a/ate/utils.py +++ b/ate/utils.py @@ -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 diff --git a/test/test_utils.py b/test/test_utils.py index 871302d7..f5cc4a06 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -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)