def test_invalid_schema_raises_error(): i = ComponentInterfaceFactory(schema={"type": "whatevs"}) with pytest.raises(ValidationError) as e: i.full_clean() assert str(e.value).startswith( "{'schema': [\"Invalid schema: 'whatevs' is not valid under any of the given schemas" )
def test_valid_schema_ok(): i = ComponentInterfaceFactory( schema={"type": "object"}, relative_path="test.json", kind=InterfaceKindChoices.ANY, ) i.full_clean()
def test_no_uuid_validation(): # For multi job inputs we add uuid prefixes, so check that the relative # path does not contain a UUID i = ComponentInterfaceFactory( relative_path=f"{uuid.uuid4()}/whatever.json", kind=InterfaceKindChoices.ANY, ) with pytest.raises(ValidationError) as e: i.full_clean() assert str(e.value) == "{'relative_path': ['Enter a valid value.']}"
def test_relative_path_file_ending(kind): if kind in InterfaceKind.interface_type_json(): good_suffix = "json" else: good_suffix = kind.lower() i = ComponentInterfaceFactory( kind=kind, relative_path=f"foo/bar.{good_suffix}", store_in_database=False, ) i.full_clean() i.relative_path = "foo/bar" with pytest.raises(ValidationError): i.full_clean()