diff --git a/src/caosdb/common/models.py b/src/caosdb/common/models.py index e229333cb95b47e33a6fcffe739e02e48d7e717d..ecd74551957bbc2b5323abae81b12f7762a0718b 100644 --- a/src/caosdb/common/models.py +++ b/src/caosdb/common/models.py @@ -518,13 +518,14 @@ class Entity(object): if p.id is not None and int(p.id) == int(key): return p elif isinstance(key, Entity): - if self.id is not None: + if key.id is not None: return self.get_parent(int(key.id)) else: return self.get_parent(key.name) else: for p in self.parents: - if p.name is not None and str(p.name) == str(key): + if (p.name is not None + and str(p.name).lower() == str(key).lower()): return p return None diff --git a/unittests/test_record.py b/unittests/test_record.py index 3b4eb4bbd34110706f7b0b1e88daac6c070dc1c6..d0acb235981cb2bd767af6ad3aebb713a9b9313c 100644 --- a/unittests/test_record.py +++ b/unittests/test_record.py @@ -24,8 +24,6 @@ # """Tests for the Record class.""" # pylint: disable=missing-docstring -import unittest - from caosdb import Entity, Record @@ -39,11 +37,25 @@ def test_role(): assert record.role == "Record" -class TestRecord(unittest.TestCase): - def test_property_access(self): - rec = Record() - rec.add_property("Prop") - assert rec.get_property("Pop") is None - assert rec.get_property("Prop") is not None - assert rec.get_property("prop") is not None - assert rec.get_property("prOp") is not None +def test_property_access(): + rec = Record(id=123) + rec.add_property("Prop") + assert rec.get_property("Pop") is None + assert rec.get_property("Prop") is not None + assert rec.get_property("prop") is not None + assert rec.get_property("prOp") is not None + +def test_get_parent_by_name(): + rec = Record(id="123") + rec.add_parent(name="Test") + assert rec.get_parent(None) is None + assert rec.get_parent("Not existing") is None + assert rec.get_parent("Test") is not None + assert rec.get_parent("test") is not None + assert rec.get_parent("tEsT") is not None + +def test_get_parent_by_id(): + rec = Record(id="123") + rec.add_parent(234) + assert rec.get_parent(None) is None + assert rec.get_parent(234) is not None