Skip to content
Snippets Groups Projects
Commit 51e616a6 authored by Florian Spreckelsen's avatar Florian Spreckelsen
Browse files

TST: Extend unit tests for other atomic datatypes

parent 3866f798
Branches
Tags
2 merge requests!39Release 0.4.0,!33F json schema datamodel
[
{
"title": "Dataset1",
"description": "Some description",
"type": "object",
"properties": {
"title": { "type": "string", "description": "full dataset title" },
"campaign": { "type": "string", "description": "FIXME" },
"1": { "type": "number", "description": "Some float property" }
},
"required": [ "title", "1" ]
},
{
"title": "Dataset2",
"type": "object",
"properties": {
"date": { "type": "string", "format": "date-time" },
"integer": { "type": "integer", "description": "Some integer property" },
"boolean": { "type": "boolean" }
}
}
]
......@@ -33,9 +33,11 @@ def test_rt_with_string_properties():
model = parse_model_from_json_schema(
os.path.join(FILEPATH,
"./datamodel_string_properties.schema.json"))
"datamodel_string_properties.schema.json"))
assert "Dataset" in model
dataset_rt = model["Dataset"]
assert isinstance(dataset_rt, db.RecordType)
assert dataset_rt.name == "Dataset"
assert dataset_rt.description == ""
assert len(dataset_rt.get_properties()) == 3
......@@ -54,3 +56,52 @@ def test_rt_with_string_properties():
method_prop = dataset_rt.get_property("method")
assert method_prop.datatype == db.TEXT
assert dataset_rt.get_importance(method_prop.name) == db.RECOMMENDED
def test_datamodel_with_atomic_properties():
"""Test read-in of two separate record types with atomic-typed properties."""
# @author Florian Spreckelsen
# @date 2022-02-18
model = parse_model_from_json_schema(os.path.join(
FILEPATH, "datamodel_atomic_properties.schema.json"))
assert "Dataset1" in model
assert "Dataset2" in model
rt1 = model["Dataset1"]
assert isinstance(rt1, db.RecordType)
assert rt.name == "Dataset1"
assert rt1.description == "Some description"
assert len(rt1.get_properties()) == 3
assert rt1.get_property("title") is not None
assert rt1.get_property("campaign") is not None
assert rt1.get_property("1") is not None
title_prop = rt1.get_property("title")
assert title_prop.datatype == db.TEXT
assert rt1.get_importance(title_prop.name) == db.OBLIGATORY
campaign_prop = rt1.get_property("campaign")
assert campaign_prop.datatype == db.TEXT
assert rt1.get_importance(campaign_prop.name) == db.RECOMMENDED
float_prop = rt1.get_property("1")
assert float_prop.datatype == db.DOUBLE
assert rt1.get_importance(float_prop.name) == db.OBLIGATORY
rt2 = model["Dataset2"]
assert isinstance(rt2, db.RecordType)
assert rt2.name == "Dataset2"
assert not rt2.description
assert len(rt2.get_properties()) == 3
date_prop = rt2.get_property("date")
assert date_prop.datatype == db.DATETIME
int_prop = rt2.get_property("integer")
assert int_prop.datatype == db.INTEGER
assert int_prop.description == "Some integer property"
bool_prop = rt2.get_property("boolean")
assert bool_prop.datatype == db.BOOLEAN
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment