diff --git a/httprunner/response.py b/httprunner/response.py index 730a7bf5..f5f4cdd4 100644 --- a/httprunner/response.py +++ b/httprunner/response.py @@ -56,11 +56,10 @@ def uniform_validator(validator): validator (dict): validator maybe in two formats: format1: this is kept for compatibility with the previous versions. - {"check": "status_code", "comparator": "eq", "expect": 201} - {"check": "$resp_body_success", "comparator": "eq", "expect": True} - format2: recommended new version, {assert: [check_item, expected_value]} - {'eq': ['status_code', 201]} - {'eq': ['$resp_body_success', True]} + {"check": "status_code", "comparator": "eq", "expect": 201, "message": "test"} + {"check": "status_code", "assert": "eq", "expect": 201, "msg": "test"} + format2: recommended new version, {assert: [check_item, expected_value, msg]} + {'eq': ['status_code', 201, "test"]} Returns dict: validator info @@ -68,7 +67,8 @@ def uniform_validator(validator): { "check": "status_code", "expect": 201, - "assert": "equals" + "assert": "equal", + "message": "test } """ @@ -79,8 +79,16 @@ def uniform_validator(validator): # format1 check_item = validator["check"] expect_value = validator["expect"] - message = validator.get("message", "") - comparator = validator.get("comparator", "eq") + + if "assert" in validator: + comparator = validator.get("assert") + else: + comparator = validator.get("comparator", "eq") + + if "msg" in validator: + message = validator.get("msg") + else: + message = validator.get("message", "") elif len(validator) == 1: # format2 diff --git a/httprunner/response_test.py b/httprunner/response_test.py index 7ab7a6fb..c26ddb3d 100644 --- a/httprunner/response_test.py +++ b/httprunner/response_test.py @@ -3,7 +3,7 @@ import unittest import requests from httprunner.parser import Parser -from httprunner.response import ResponseObject +from httprunner.response import ResponseObject, uniform_validator class TestResponse(unittest.TestCase): @@ -67,3 +67,23 @@ class TestResponse(unittest.TestCase): ], variables_mapping=variables_mapping, ) + + def test_uniform_validator(self): + validators = [ + { + "check": "status_code", + "comparator": "eq", + "expect": 201, + "message": "test", + }, + {"check": "status_code", "assert": "eq", "expect": 201, "msg": "test"}, + {"eq": ["status_code", 201, "test"]}, + ] + expected = { + "check": "status_code", + "assert": "equal", + "expect": 201, + "message": "test", + } + for validator in validators: + self.assertEqual(uniform_validator(validator), expected)