merge_validator: support checking unhashable values such as dict

This commit is contained in:
debugtalk
2018-04-23 16:05:31 +08:00
parent 84f5000d7a
commit bfb9b1e3e1
7 changed files with 53 additions and 16 deletions

View File

@@ -13,6 +13,7 @@
validate:
- "eq": ["status_code", 0]
- "len_eq": ["content.token", 12]
- "contains": [{"a": 1, "b": 2}, "a"]
- api:
def: create_user($uid, $user_name, $user_password, $token)

View File

@@ -21,6 +21,7 @@
validate:
- "eq": ["status_code", 200]
- "len_eq": ["content.token", 16]
- "contains": [{"a": 1, "b": 2}, "b"]
- test:
name: reset all users

View File

@@ -721,6 +721,20 @@ class TestcaseParserUnittest(unittest.TestCase):
merged_validators
)
def test_merge_validator_with_dict(self):
api_validators = [
{'eq': ["a", {"v": 1}]},
{'eq': [{"b": 1}, 200]}
]
test_validators = [
{'len_eq': ['s3', 12]},
{'eq': [{"b": 1}, 201]}
]
merged_validators = testcase.merge_validator(api_validators, test_validators)
self.assertEqual(len(merged_validators), 3)
self.assertEqual(merged_validators[1], {'check': {'b': 1}, 'expect': 201, 'comparator': 'eq'})
def test_merge_extractor(self):
api_extrators = [{"var1": "val1"}, {"var2": "val2"}]
test_extracors = [{"var1": "val111"}, {"var3": "val3"}]