diff --git a/src/linkahead/apiutils.py b/src/linkahead/apiutils.py index d70f937feb4aa980eb3e69767c83e2dd28cdcfd1..c2c687f1b3e5a175ce1c06653f198aa58b2eac63 100644 --- a/src/linkahead/apiutils.py +++ b/src/linkahead/apiutils.py @@ -342,8 +342,17 @@ def compare_entities(old_entity: Entity, # we have not yet compared properties that do not exist in old_entity for prop in new_entity.properties: - if len([0 for p in old_entity.properties if p.name.lower() == prop.name.lower()]) == 0: + # check how often the property appears in old_entity + num_old_prop = len([0 for p in old_entity.properties + if p.name.lower() == prop.name.lower()]) + if num_old_prop == 0: + # property is only present in new_entity - add to diff newdiff["properties"][prop.name] = {} + if num_old_prop > 1: + # Check whether the property is present multiple times in old_entity + # and raise error - result would be incorrect + raise NotImplementedError( + "Comparison not implemented for multi-properties.") # compare parents # ToDo: Compare using filter function, compare inheritance level for RTs