diff --git a/src/caoscrawler/identifiable_adapters.py b/src/caoscrawler/identifiable_adapters.py index e903190b00c83d32af28e878422d27dc0e8e7583..a036bf90aae68950e3d97afb12a2190fcb053ba9 100644 --- a/src/caoscrawler/identifiable_adapters.py +++ b/src/caoscrawler/identifiable_adapters.py @@ -264,10 +264,6 @@ class IdentifiableAdapter(metaclass=ABCMeta): """ pass - @abstractmethod - def resolve_reference(self, record: db.Record): - pass - @abstractmethod def get_file(self, identifiable: db.File): warnings.warn( @@ -411,28 +407,6 @@ class IdentifiableAdapter(metaclass=ABCMeta): """ pass - def retrieve_identified_record_for_record( - self, record: db.Record, referencing_entities=None - ): - """ - This function combines all functionality of the IdentifierAdapter by - returning the identifiable after having checked for an appropriate - registered identifiable. - - In case there was no appropriate registered identifiable or no identifiable could - be found return value is None. - """ - if record.path is not None: - return cached_get_entity_by(path=record.path) - if record.id is not None: - return cached_get_entity_by(eid=record.id) - - identifiable = self.get_identifiable( - record, referencing_entities=referencing_entities - ) - - return self.retrieve_identified_record_for_identifiable(identifiable) - @staticmethod def referencing_entity_has_appropriate_type(parents, register_identifiable): """returns true if one of the parents is listed by the 'is_referenced_by' property @@ -587,26 +561,6 @@ class LocalStorageIdentifiableAdapter(IdentifiableAdapter): return None return candidates[0] - def resolve_reference(self, value: db.Record): - if self.get_registered_identifiable(value) is None: - raise NotImplementedError( - "Non-identifiable references cannot" - " be used as properties in identifiables." - ) - # TODO: just resolve the entity - - value_identifiable = self.retrieve_identified_record_for_record(value) - if value_identifiable is None: - raise RuntimeError( - "The identifiable which is used as property" - " here has to be inserted first." - ) - - if value_identifiable.id is None: - raise RuntimeError("The entity has not been assigned an ID.") - - return value_identifiable.id - class CaosDBIdentifiableAdapter(IdentifiableAdapter): """ @@ -671,15 +625,6 @@ class CaosDBIdentifiableAdapter(IdentifiableAdapter): if definition.parents[0].name.lower() == rt_name.lower(): return definition - def resolve_reference(self, record: db.Record): - """ - Current implementation just sets the id for this record - as a value. It needs to be verified that references all contain an ID. - """ - if record.id is None: - return record - return record.id - def retrieve_identified_record_for_identifiable(self, identifiable: Identifiable): query_string = self.create_query_for_identifiable(identifiable) try: diff --git a/unittests/test_crawler.py b/unittests/test_crawler.py index d1f713d05c908b77378092f2da5cc28836006f49..e7a03e3322da0d937bf3c1330f21b90768b478d8 100644 --- a/unittests/test_crawler.py +++ b/unittests/test_crawler.py @@ -191,8 +191,6 @@ def crawler_mocked_identifiable_retrieve(): # Simulate remote server content by using the names to identify records # There is only a single known Record with name A - crawler.identifiableAdapter.retrieve_identified_record_for_record = Mock(side_effect=partial( - basic_retrieve_by_name_mock_up, known={"A": db.Record(id=1111, name="A")})) crawler.identifiableAdapter.retrieve_identified_record_for_identifiable = Mock( side_effect=partial( basic_retrieve_by_name_mock_up, known={"A": db.Record(id=1111, name="A")})) @@ -217,9 +215,6 @@ def crawler_mocked_for_backref_test(): # Simulate remote server content by using the names to identify records # There is only a single known Record with name A - crawler.identifiableAdapter.retrieve_identified_record_for_record = Mock(side_effect=partial( - basic_retrieve_by_name_mock_up, known={"A": - db.Record(id=1111, name="A").add_parent("BR")})) crawler.identifiableAdapter.retrieve_identified_record_for_identifiable = Mock( side_effect=partial( basic_retrieve_by_name_mock_up, known={"A": @@ -342,10 +337,6 @@ def test_split_into_inserts_and_updates_simple(crawler_mocked_identifiable_retri st = SyncGraph(entlist, crawler.identifiableAdapter) # check setup - assert crawler.identifiableAdapter.retrieve_identified_record_for_record( - identlist[0]).id == 1111 - assert crawler.identifiableAdapter.retrieve_identified_record_for_record( - identlist[1]) is None insert, update = crawler._split_into_inserts_and_updates(st) assert len(insert) == 1 @@ -515,10 +506,6 @@ def test_split_into_inserts_and_updates_backref(crawler_mocked_for_backref_test) assert st.get_equivalent(st.nodes[1]) is None assert st.get_equivalent(st.nodes[0]) is None # one can be found remotely, one not - assert crawler.identifiableAdapter.retrieve_identified_record_for_record( - identlist[0]).id == 1111 - assert crawler.identifiableAdapter.retrieve_identified_record_for_record( - identlist[1]) is None # check the split... insert, update = crawler._split_into_inserts_and_updates(st)