Skip to content

Commit 44e58e2

Browse files
committed
add new minimal data model and tests
1 parent 15ba0d3 commit 44e58e2

File tree

4 files changed

+43
-6
lines changed

4 files changed

+43
-6
lines changed

synapseclient/extensions/curator/schema_generation.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2955,7 +2955,7 @@ def define_data_model_relationships(self) -> dict:
29552955
"edge_dir": "out",
29562956
"type": list,
29572957
"edge_rel": True,
2958-
"required_header": True,
2958+
"required_header": False,
29592959
},
29602960
"required": {
29612961
"jsonld_key": "sms:required",
@@ -3004,7 +3004,7 @@ def define_data_model_relationships(self) -> dict:
30043004
"edge_dir": "in",
30053005
"type": list,
30063006
"edge_rel": True,
3007-
"required_header": True,
3007+
"required_header": False,
30083008
},
30093009
"isPartOf": {
30103010
"jsonld_key": "schema:isPartOf",
@@ -3023,7 +3023,7 @@ def define_data_model_relationships(self) -> dict:
30233023
"node_label": "uri",
30243024
"type": str,
30253025
"edge_rel": False,
3026-
"required_header": True,
3026+
"required_header": False,
30273027
"node_attr_dict": {
30283028
"default": get_label_from_display_name,
30293029
"standard": get_label_from_display_name,
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Attribute,Description,Valid Values,DependsOn,Required,Parent,Validation Rules
2+
datatype,,,attribute,,DataType,
3+
attribute,,,,TRUE,DataProperty,

tests/unit/synapseclient/extensions/unit_test_curator.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1947,6 +1947,11 @@ def setUp(self):
19471947
"schema_files",
19481948
"data_models/example.model.csv",
19491949
)
1950+
self.minimal_test_schema_path = os.path.join(
1951+
os.path.dirname(__file__),
1952+
"schema_files",
1953+
"data_models/minimal_model.csv",
1954+
)
19501955

19511956
def test_generate_jsonschema_from_csv(self):
19521957
"""Test generate_jsonschema from CSV file."""
@@ -1980,6 +1985,38 @@ def test_generate_jsonschema_from_csv(self):
19801985
finally:
19811986
shutil.rmtree(temp_dir)
19821987

1988+
def test_generate_jsonschema_from_minimal_csv(self):
1989+
"""Test generate_jsonschema from a minimal CSV file."""
1990+
# GIVEN a CSV schema file
1991+
temp_dir = tempfile.mkdtemp()
1992+
try:
1993+
# WHEN I generate JSON schemas
1994+
schemas, file_paths = generate_jsonschema(
1995+
data_model_source=self.minimal_test_schema_path,
1996+
output=temp_dir,
1997+
data_types=None,
1998+
data_model_labels="class_label",
1999+
synapse_client=self.syn,
2000+
)
2001+
2002+
# THEN schemas should be generated
2003+
assert isinstance(schemas, list)
2004+
assert len(schemas) > 0
2005+
assert isinstance(file_paths, list)
2006+
assert len(file_paths) == len(schemas)
2007+
2008+
# AND files should exist
2009+
for file_path in file_paths:
2010+
assert os.path.exists(file_path), f"Expected file at {file_path}"
2011+
2012+
# AND each schema should be valid JSON Schema
2013+
for schema in schemas:
2014+
assert isinstance(schema, dict)
2015+
assert "$schema" in schema
2016+
assert "properties" in schema
2017+
finally:
2018+
shutil.rmtree(temp_dir)
2019+
19832020
def test_generate_jsonschema_from_jsonld(self):
19842021
"""Test generate_jsonschema from JSONLD file."""
19852022
# GIVEN a JSONLD file (first generate it from CSV)

tests/unit/synapseclient/extensions/unit_test_data_model_relationships.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,9 @@ def test_define_required_csv_headers(self, dmr: DataModelRelationships):
3939
"Description",
4040
"Valid Values",
4141
"DependsOn",
42-
"DependsOn Component",
4342
"Required",
4443
"Parent",
4544
"Validation Rules",
46-
"Properties",
47-
"Source",
4845
]
4946

5047
@pytest.mark.parametrize("edge", [True, False], ids=["True", "False"])

0 commit comments

Comments
 (0)