diff --git a/application/database/db.py b/application/database/db.py index 12d7b7437..86a09b6f3 100644 --- a/application/database/db.py +++ b/application/database/db.py @@ -1174,12 +1174,12 @@ def __make_cre_internal_links(self, cre: CRE) -> List[cre_defs.Link]: ) for internal_link in internal_links: + linked_cre_query = self.session.query(CRE) link_type = cre_defs.LinkTypes.from_str(internal_link.type) - if ( - internal_link.cre == cre.id - ): # if we are the lower cre in this relationship, we need to flip the "Contains" linktypes + if internal_link.cre == cre.id: + # if we are the lower cre in this relationship, we need to flip the "Contains" linktypes linked_cre = linked_cre_query.filter( CRE.id == internal_link.group ).first() # get the higher cre so we can add the link @@ -1196,17 +1196,10 @@ def __make_cre_internal_links(self, cre: CRE) -> List[cre_defs.Link]: links.append( cre_defs.Link(ltype=link_type, document=CREfromDB(linked_cre)) ) - else: - raise ValueError( - f"Received an unexpected link type {link_type} in internal link between {linked_cre.name} and {cre.name}" - ) - else: # if we are are the higher cre then we don't need to do anything, relationship types are always "higher"->"lower" - linked_cre = linked_cre_query.filter( - CRE.id == internal_link.cre - ).first() - links.append( - cre_defs.Link(ltype=link_type, document=CREfromDB(linked_cre)) - ) + continue + # if we are are the higher cre then we don't need to do anything, relationship types are always "higher"->"lower" + linked_cre = linked_cre_query.filter(CRE.id == internal_link.cre).first() + links.append(cre_defs.Link(ltype=link_type, document=CREfromDB(linked_cre))) return links def __make_cre_links( diff --git a/application/tests/cre_main_test.py b/application/tests/cre_main_test.py index 6306a8b0c..a5c431192 100644 --- a/application/tests/cre_main_test.py +++ b/application/tests/cre_main_test.py @@ -262,7 +262,7 @@ def test_register_cre(self) -> None: c_lower = self.collection.get_CREs(cre_lower.id)[0] c_equal = self.collection.get_CREs(cre_equal.id)[0] retrieved_cre = self.collection.get_CREs(cre.id)[0] - + self.maxDiff = None self.assertCountEqual( c_higher.links, [ diff --git a/application/tests/db_test.py b/application/tests/db_test.py index 1db0545a3..1d13bd0be 100644 --- a/application/tests/db_test.py +++ b/application/tests/db_test.py @@ -568,6 +568,7 @@ def test_get_CREs(self) -> None: ) ) collection.session.commit() + self.maxDiff = None # we can retrieve children cres self.assertEqual(