From 254d0061123db7e471a39283b3441b7f214a1110 Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Wed, 13 May 2020 14:08:22 +0200 Subject: [PATCH] BUG: get_parent, when self.id is not None but key.id is --- src/caosdb/common/models.py | 5 +++-- unittests/test_record.py | 32 ++++++++++++++++++++++---------- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/src/caosdb/common/models.py b/src/caosdb/common/models.py index e229333c..ecd74551 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 3b4eb4bb..d0acb235 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 -- GitLab