From 15b2e3f153d733b5a94fd3bc0fbc9a3f0b6f99b5 Mon Sep 17 00:00:00 2001 From: Florian Spreckelsen <f.spreckelsen@indiscale.com> Date: Tue, 30 Apr 2024 11:04:07 +0200 Subject: [PATCH] TST: Add test for https://gitlab.com/linkahead/linkahead-pylib/-/issues/120 --- tests/test_issues_pylib.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tests/test_issues_pylib.py b/tests/test_issues_pylib.py index 56009a8..ec9e873 100644 --- a/tests/test_issues_pylib.py +++ b/tests/test_issues_pylib.py @@ -90,3 +90,34 @@ def test_gitlab_com_108(): tests = db.execute_query("FIND ENTITY test*", cache=False) tests.delete() print("deleted") + + +def test_gitlab_com_120(): + """Test that an update doesn't add unwanted subproperties. + + See https://gitlab.com/linkahead/linkahead-pylib/-/issues/120. + + """ + rt1 = db.RecordType(name="TestType1") + rt2 = db.RecordType(name="TestType2") + prop = db.Property(name="TestProp", datatype=db.TEXT) + rt2.add_property(prop) + rt1.add_property(rt2) + + # no subproperties in rt1's rt2 property: + assert len(rt1.get_property(rt2.name).properties) == 0 + + db.Container().extend([rt1, rt2, prop]).insert() + + rt1_retrieved = db.RecordType(id=rt1.id).retrieve() + # Also no subproperties after retrieval + assert len(rt1_retrieved.get_property(rt2.name).properties) == 0 + + new_prop = db.Property(name="TestPropNew", datatype=db.INTEGER).insert() + rt1_retrieved.add_property(new_prop) + # Still no subproperties + assert len(rt1_retrieved.get_property(rt2.name).properties) == 0 + + rt1_retrieved.update() + # The update and addition of a new property must not change this, either. + assert len(rt1_retrieved.get_property(rt2.name).properties) == 0 -- GitLab