diff --git a/src/caoscrawler/identifiable_adapters.py b/src/caoscrawler/identifiable_adapters.py index 517bc97402375a09d9ea3fc48e93db0eb8a87a15..23883185fee90d3953c1f354b05e05e3cc7ba0d1 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( @@ -409,28 +405,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 @@ -585,26 +559,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): """ @@ -669,15 +623,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 4e8b057e382e6353698b8b63bbcc4e648284d711..b50dfb97c1adafb1de58a4aeea99f61c4ab87142 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)