fix: uniform_validator

This commit is contained in:
debugtalk
2022-06-17 22:20:43 +08:00
parent b5122521b4
commit 54eebaa9ce
2 changed files with 37 additions and 9 deletions

View File

@@ -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

View File

@@ -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)