From 2f24e63884073aad57ce70855639601b946b8274 Mon Sep 17 00:00:00 2001 From: florian <f.spreckelsen@inidscale.com> Date: Mon, 15 May 2023 14:48:29 +0200 Subject: [PATCH] TST: Add test for pattern properties without top-level RT --- .../datamodel_no_toplevel_entity.schema.json | 13 +++++++++++ unittests/test_json_schema_model_parser.py | 22 +++++++++++++++++++ 2 files changed, 35 insertions(+) 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 104d22c7..35240d76 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 90517ebd..707ff76e 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 -- GitLab