def test_instance_not_equal_const(self): res = validate(schema={ "$id": "https://example.com/ope", "const": "DEF" }, instance=123) self.assertFalse(res)
def test_instance_not_boolean(self): res = validate(schema={ "$id": "https://example.com/ope", "type": "boolean" }, instance=123) self.assertFalse(res)
def test_instance_null(self): res = validate(schema={ "$id": "https://example.com/ope", "type": "null" }, instance=None) self.assertTrue(res)
def test_instance_equal_const(self): res = validate(schema={ "$id": "https://example.com/ope", "const": "ABC" }, instance="ABC") self.assertTrue(res)
def test_instance_in_enum(self): res = validate( schema={ "$id": "https://example.com/ope", "enum": ["Abc", 1224] }, instance="Abc", ) self.assertTrue(res)
def test_instance_not_in_enum(self): res = validate( schema={ "$id": "https://example.com/ope", "enum": ["Abc", 1244] }, instance=123, ) self.assertFalse(res)
def test(self): instance = [ [{ "foo": None }, { "foo": None }, { "foo": None }], ] schema = { "$defs": { "item": { "type": "array", "additionalItems": False, "items": [ { "$ref": "#/$defs/sub-item" }, { "$ref": "#/$defs/sub-item" }, ], }, "sub-item": { "type": "object", "required": ["foo"] }, }, "type": "array", "additionalItems": False, "items": [ { "$ref": "#/$defs/item" }, ], } self.assertEqual(bool(validate(schema=schema, instance=instance)), False)
def test(self): res = validate( schema={ "$schema": "https://json-schema.org/draft/2019-09/schema", "$id": "http://example.com/product.schema.json", "title": "Product", "description": "A product from Acme's catalog", "type": "object", "properties": { "productId": {"$ref": "http://example.com/product.schema.json#ID"}, "productName": {"type": "string"}, "price": {"type": "number"}, "tags": { "$ref": "http://example.com/product.schema.json#ArrayOfStrings" }, }, "required": ["productId"], "$defs": { "ID": { "$anchor": "ID", "type": "integer", "description": "The unique identifier for a product", }, "ArrayOfStrings": { "$anchor": "ArrayOfStrings", "type": "array", "items": {"type": "string"}, }, }, }, instance={ "productId": 1, "productName": "A green door", "price": 12.50, "tags": ["home", "green"], }, ) self.assertTrue(res)
def test_false(self, name, schema, instance): self.assertFalse(validate(schema=schema, instance=instance))
def test_true(self, name, schema, instance): self.assertTrue(validate(schema=schema, instance=instance))
def test_true(self, name, schema, instance): res = validate(schema=schema, instance=instance) self.assertTrue(res)
def test_false(self, name, schema, instance): res = validate(schema, instance) self.assertFalse(res)
def tests(self, description, testcase): schema = testcase["schema"] for test in testcase["tests"]: with self.subTest(test["description"]): self.assertEqual(bool(validate(schema, instance=test["data"])), test["valid"])
def test(self): res = validate(schema={"not": True}, instance="123") self.assertFalse(res)
def validate_pyjschema(): validate(SCHEMA, INSTANCE)