From deaa3317df6bf3233090cfe2d6b4a40044417f98 Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Wed, 11 Nov 2020 16:46:20 +0100 Subject: [PATCH] WIP: test for deletion of references in old versions --- tests/test_version.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tests/test_version.py b/tests/test_version.py index 8d45090..7a9bf8b 100644 --- a/tests/test_version.py +++ b/tests/test_version.py @@ -747,3 +747,35 @@ def test_overridden_datatype(): rt_old = c.Container().retrieve(query=str(rt.id) + "@HEAD~1", flags={"cache": "false"}, sync=False) assert rt.get_property("TestProperty").datatype == c.LIST(c.TEXT) + + +def test_delete_referenced_entity(): + ref_rt = c.RecordType("TestReferencedRT").insert() + rt = c.RecordType("TestRT").insert() + ref = c.Record("TestRef1").add_parent(ref_rt).insert() + + rec = c.Record("TestRec").add_parent(rt).add_property(ref_rt, ref).insert() + + rec.description = "v2" + rec.remove_property(ref_rt) + rec.update() + + rec_v1 = c.Container().retrieve(query=str(rec.id) + "@HEAD~1", + flags={"cache": "false"}, sync=False)[0] + assert rec_v1.get_property(ref_rt).value == ref.id + + rec_v2 = c.Container().retrieve(query=str(rec.id) + "@HEAD", + flags={"cache": "false"}, sync=False)[0] + assert rec_v2.get_property(ref_rt) is None + + ref.delete() + + rec_v1 = c.Container().retrieve(query=str(rec.id) + "@HEAD~1", + flags={"cache": "false"}, sync=False)[0] + assert rec_v1.get_property(ref_rt).value is None + assert rec_v1.get_property(ref_rt).get_warnings()[ + 0].description == "The referenced entity has been deleted in the mean time and is not longer available." + + rec_v2 = c.Container().retrieve(query=str(rec.id) + "@HEAD", + flags={"cache": "false"}, sync=False)[0] + assert rec_v2.get_property(ref_rt) is None -- GitLab