From 1a61f93bf339d1a25e5bf99aaa0107f3ff6b9058 Mon Sep 17 00:00:00 2001
From: Alexander Schlemmer <a.schlemmer@indiscale.com>
Date: Wed, 29 May 2024 17:32:12 +0200
Subject: [PATCH] TST: added test for list properties in create_flat_list

---
 unittests/test_sync_graph.py | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/unittests/test_sync_graph.py b/unittests/test_sync_graph.py
index 1ec2b3b2..5d7363fb 100644
--- a/unittests/test_sync_graph.py
+++ b/unittests/test_sync_graph.py
@@ -76,6 +76,30 @@ def test_create_flat_list():
     assert b in flat
     assert c in flat
 
+    # Test for lists:
+    a = db.Record()
+    b = db.Record()
+    d = db.Record()
+    a.add_property(name="a", value=a)
+    a.add_property(name="list", value=[b, d])
+    flat = SyncGraph._create_flat_list([a])
+    assert len(flat) == 3
+    assert a in flat
+    assert b in flat
+    assert d in flat
+
+    c = db.Record()
+    c.add_property(name="a", value=a)
+    # This would cause a recursion error if it is not dealt with properly.
+    a.add_property(name="second_list", value=[b, d, c])
+    flat = SyncGraph._create_flat_list([c])
+    assert len(flat) == 4
+    assert a in flat
+    assert b in flat
+    assert c in flat
+    assert d in flat
+
+
 
 def test_create_reference_mapping():
     a = SyncNode(db.Record().add_parent("RT1"),
-- 
GitLab