From 593a3acb24796f728deba463db646d2a1722cef7 Mon Sep 17 00:00:00 2001
From: "i.nueske" <i.nueske@indiscale.com>
Date: Tue, 3 Dec 2024 12:58:23 +0100
Subject: [PATCH] BUG: Only use name as key in compare_entities diff if names
 match

---
 src/linkahead/apiutils.py | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/linkahead/apiutils.py b/src/linkahead/apiutils.py
index 9e4ba62..e887ee4 100644
--- a/src/linkahead/apiutils.py
+++ b/src/linkahead/apiutils.py
@@ -379,7 +379,8 @@ def compare_entities(entity0: Optional[Entity] = None,
 
     # compare properties
     for prop in entity0.properties:
-        key = prop.name if prop.name is not None else prop.id  # ToDo: Would making id default break anything?
+        # ToDo: Would making id default break anything?
+        key = prop.name if prop.name is not None else prop.id
         matching = entity1.properties.filter(prop)
         if len(matching) == 0:
             # entity1 has prop, entity0 does not
@@ -387,7 +388,7 @@ def compare_entities(entity0: Optional[Entity] = None,
         elif len(matching) == 1:
             # It's possible that prop has name and id, but match only has id
             key = prop.name if (prop.name is not None and
-                                matching[0].name is not None) else prop.id
+                                matching[0].name == prop.name) else prop.id
             diff[0]["properties"][key] = {}
             diff[1]["properties"][key] = {}
             propdiff = (diff[0]["properties"][key],
@@ -432,7 +433,7 @@ def compare_entities(entity0: Optional[Entity] = None,
 
     # we have not yet compared properties that do not exist in entity0
     for prop in entity1.properties:
-        key = prop.name if prop.name is not None else prop.id  # ToDo: Would making id default break anything?
+        key = prop.name if prop.name is not None else prop.id
         # check how often the property appears in entity0
         num_prop_in_ent0 = len(entity0.properties.filter(prop))
         if num_prop_in_ent0 == 0:
@@ -448,7 +449,7 @@ def compare_entities(entity0: Optional[Entity] = None,
     for index, parents, other_entity in [(0, entity0.parents, entity1),
                                          (1, entity1.parents, entity0)]:
         for parent in parents:
-            key = parent.name if parent.name is not None else parent.id  # ToDo: Would making id default break anything?
+            key = parent.name if parent.name is not None else parent.id
             matching = other_entity.parents.filter(parent)
             if len(matching) == 0:
                 diff[index]["parents"].append(key)
-- 
GitLab