def test_initialization_errors(schema, draft, error): with pytest.raises(ValueError, match=error): JSONSchema(schema, draft)
def test_repr(): assert repr(JSONSchema({"minimum": 5})) == '<JSONSchema: {"minimum":5}>'
def test_invalid_value(method): schema = JSONSchema({"minimum": 42}) with pytest.raises(ValueError, match="Unsupported type: 'object'"): getattr(schema, method)(object())
def test_invalid_schema(func): with pytest.raises(ValueError): func(2 ** 64, True) @pytest.mark.parametrize("func", (is_valid, validate)) def test_invalid_type(func): with pytest.raises(ValueError, match="Unsupported type: 'set'"): func(set(), True) def test_repr(): assert repr(JSONSchema({"minimum": 5})) == '<JSONSchema: {"minimum":5}>' @pytest.mark.parametrize("func", (JSONSchema({"minimum": 5}).validate, partial(validate, {"minimum": 5}))) def test_validate(func): with pytest.raises(ValidationError, match="2 is less than the minimum of 5"): func(2) def test_recursive_dict(): instance = {} instance["foo"] = instance with pytest.raises(ValueError): is_valid(True, instance) def test_recursive_list(): instance = [] instance.append(instance)
def test_validate(): schema = JSONSchema({"minimum": 5}) with pytest.raises(ValidationError, match="2 is less than the minimum of 5"): schema.validate(2)
with pytest.raises(ValueError): func(2**64, True) @pytest.mark.parametrize("func", (is_valid, validate)) def test_invalid_type(func): with pytest.raises(ValueError, match="Unsupported type: 'set'"): func(set(), True) def test_repr(): assert repr(JSONSchema({"minimum": 5})) == '<JSONSchema: {"minimum":5}>' @pytest.mark.parametrize("func", (JSONSchema({ "minimum": 5 }).validate, partial(validate, {"minimum": 5}))) def test_validate(func): with pytest.raises(ValidationError, match="2 is less than the minimum of 5"): func(2) def test_recursive_dict(): instance = {} instance["foo"] = instance with pytest.raises(ValueError): is_valid(True, instance) def test_recursive_list():