diff --git a/src/caosadvancedtools/json_schema_exporter.py b/src/caosadvancedtools/json_schema_exporter.py index 75f1a188453e330a2b9b33497a535434cf7cf980..f37ca030c0dc3e2363592972d868f52a6918b402 100644 --- a/src/caosadvancedtools/json_schema_exporter.py +++ b/src/caosadvancedtools/json_schema_exporter.py @@ -143,8 +143,8 @@ class JsonSchemaExporter: values = self._retrieve_enum_values("RECORD") + self._retrieve_enum_values("FILE") json_prop["enum"] = values elif prop.datatype == db.FILE: - # TODO: different issue - raise NotImplementedError("Files have not been implemented yet.") + json_prop["type"] = "string" + json_prop["format"] = "data-url" else: prop_name = prop.datatype if isinstance(prop.datatype, db.Entity): diff --git a/unittests/test_json_schema_exporter.py b/unittests/test_json_schema_exporter.py index f8d80ad50a04a0bcf9abb47138d691a2350691f3..18a375363c175dd6d2fd1736023ef29afa110bfd 100644 --- a/unittests/test_json_schema_exporter.py +++ b/unittests/test_json_schema_exporter.py @@ -534,17 +534,21 @@ def test_rt_with_references(): } validate(example, schema) + # Single file and multiple files rt = db.RecordType() rt.add_property(name="FileProp", datatype=db.FILE) - with raises(NotImplementedError): - schema = rtjs(rt) + schema = rtjs(rt) + assert schema["properties"]["FileProp"]["type"] == "string" + assert schema["properties"]["FileProp"]["format"] == "data-url" rt = db.RecordType() rt.add_property(name="FileProp", datatype=db.LIST(db.FILE)) - with raises(NotImplementedError): - schema = rtjs(rt) + schema = rtjs(rt) + assert schema["properties"]["FileProp"]["type"] == "array" + assert schema["properties"]["FileProp"]["items"]["type"] == "string" + assert schema["properties"]["FileProp"]["items"]["format"] == "data-url" def test_broken():