-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathtest_json_validator.py
39 lines (33 loc) · 1.43 KB
/
test_json_validator.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from contextcheck.assertions.utils import JsonValidator
def test_json_validator():
request_json = '{"name": "John", "age": 30, "city": "New York"}'
assertion_schema = {
"type": "object",
"properties": {
"name": {"type": "string"},
"age": {"type": "number", "minimum": 0, "maximum": 150},
},
"required": ["name", "age"],
}
json_validator = JsonValidator(request_json=request_json, assertion_schema=assertion_schema)
assert json_validator.is_valid() == True
assert json_validator.has_valid_schema() == True
invalid_request_json_1 = (
'Here is your response in a json format:\n{"name": "John", "age": 30, "city": "New York"}'
)
json_validator = JsonValidator(
request_json=invalid_request_json_1, assertion_schema=assertion_schema
)
assert json_validator.is_valid() == False
invalid_request_json_2 = '{"name": "John", "age": -30, "city": "New York"}'
json_validator = JsonValidator(
request_json=invalid_request_json_2, assertion_schema=assertion_schema
)
assert json_validator.is_valid() == True
assert json_validator.has_valid_schema() == False
invalid_request_json_3 = '{"name": "John"}'
json_validator = JsonValidator(
request_json=invalid_request_json_3, assertion_schema=assertion_schema
)
assert json_validator.is_valid() == True
assert json_validator.has_valid_schema() == False