diff --git a/unittests/json-schema-models/datamodel_no_toplevel_entity.schema.json b/unittests/json-schema-models/datamodel_no_toplevel_entity.schema.json index 104d22c7e8501d4f1ae66f680f7403cb02b8b090..35240d765479b719576e6ee67e387790d3d6d160 100644 --- a/unittests/json-schema-models/datamodel_no_toplevel_entity.schema.json +++ b/unittests/json-schema-models/datamodel_no_toplevel_entity.schema.json @@ -39,5 +39,18 @@ }, "required": ["title", "number_prop"] } + }, + "patternProperties": { + "^[0-9]{4,4}": { + "type": "boolean" + }, + "^[0-9]{4,4}-[0-9]{2,2}-[0-9]{2,2}": { + "type": "object", + "properties": { + "date_id": { + "$ref": "#/definitions/uuid" + } + } + } } } diff --git a/unittests/test_json_schema_model_parser.py b/unittests/test_json_schema_model_parser.py index 90517ebdc37a3099617363a8610d98e4437035eb..707ff76e0aefa7afd299ab14e748c0cab05c7cb8 100644 --- a/unittests/test_json_schema_model_parser.py +++ b/unittests/test_json_schema_model_parser.py @@ -392,3 +392,25 @@ def test_no_toplevel_entity(): uid_prop = rt1.get_property("user_id") assert uid_prop.datatype == db.TEXT assert rt1.get_importance(uid_prop.name) == db.RECOMMENDED + + # pattern properties without top-level entity: + assert "__PatternEntry_1" in model + assert "__PatternEntry_2" in model + + pattern_boolean_rt = model["__PatternEntry_1"] + assert "pattern: " in pattern_boolean_rt.description + assert len(pattern_boolean_rt.properties) == 2 + pp = pattern_boolean_rt.get_property("__matched_pattern") + assert pp.datatype == db.TEXT + assert pattern_boolean_rt.get_importance(pp.name) == db.OBLIGATORY + value_prop = pattern_boolean_rt.get_property("__PatternEntry_1_value") + assert value_prop.datatype == db.BOOLEAN + + pattern_object_rt = model["__PatternEntry_2"] + assert "pattern: " in pattern_object_rt.description + assert len(pattern_object_rt.properties) == 2 + pp = pattern_object_rt.get_property("__matched_pattern") + assert pp.datatype == db.TEXT + assert pattern_object_rt.get_importance(pp.name) == db.OBLIGATORY + date_id_prop = pattern_object_rt.get_property("date_id") + assert date_id_prop.datatype == db.TEXT