mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-13 08:59:44 +08:00
fix: uniform_validator
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user