def test_draft(filename, draft, schema, instance, expected, description): error_message = f"[{filename}] {description}: {schema} | {instance}" try: result = jsonschema_rs.is_valid(schema, instance, int(draft)) assert result is expected, error_message except ValueError: pytest.fail(error_message)
def test_draft(draft, schema, instance, expected, description): try: result = jsonschema_rs.is_valid(schema, instance, int(draft)) assert result is expected, "{description}: {schema} | {instance}".format( description=description, schema=schema, instance=instance ) except ValueError: pytest.fail( "{description}: {schema} | {instance}".format(description=description, schema=schema, instance=instance) )
def test_maximum(maximum): with suppress(SystemError): assert is_valid({"maximum": maximum}, maximum) assert is_valid({"maximum": maximum}, maximum + 1) is False
def test_minimum(minimum): with suppress(SystemError): assert is_valid({"minimum": minimum}, minimum) assert is_valid({"minimum": minimum}, minimum - 1) is False
def test_recursive_list(): instance = [] instance.append(instance) with pytest.raises(ValueError): is_valid(True, instance)
def test_recursive_dict(): instance = {} instance["foo"] = instance with pytest.raises(ValueError): is_valid(True, instance)
def test_multiple_of(multiple_of): with suppress(SystemError): assert is_valid({"multipleOf": multiple_of}, multiple_of * 3)
def test_invalid_type(): with pytest.raises(ValueError, match="Unsupported type: 'set'"): is_valid(set(), True)
def test_invalid_schema(): with pytest.raises(ValueError): is_valid(2**64, True)
def test_schema_processing(instance): with suppress(Exception): is_valid(instance, True)
def test_instance_processing(instance): with suppress(Exception): is_valid(True, instance)