From 28b1b816467145f2989532459f5e4a39ec91de21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <h.tomwoerden@indiscale.com> Date: Fri, 10 May 2024 11:43:59 +0200 Subject: [PATCH] DOC: docstring --- src/caoscrawler/identifiable_adapters.py | 8 +++ unittests/test_file_identifiables.py | 70 ------------------------ 2 files changed, 8 insertions(+), 70 deletions(-) delete mode 100644 unittests/test_file_identifiables.py diff --git a/src/caoscrawler/identifiable_adapters.py b/src/caoscrawler/identifiable_adapters.py index 7f54f396..81396c66 100644 --- a/src/caoscrawler/identifiable_adapters.py +++ b/src/caoscrawler/identifiable_adapters.py @@ -149,6 +149,14 @@ identifiabel, identifiable and identified record) for a Record. return query_string def check_identifying_props(self, node, raise_exception=True): + """checks whether all identifying properties exist and raises an error if not + + If raise_exception is False, the function returns False instead of raising an error. + + Backreferences are not checked. + + Returns True if all identifying properties exist. + """ if node.registered_identifiable is None: if raise_exception: raise RuntimeError("no registered_identifiable") diff --git a/unittests/test_file_identifiables.py b/unittests/test_file_identifiables.py deleted file mode 100644 index 93dc8cb5..00000000 --- a/unittests/test_file_identifiables.py +++ /dev/null @@ -1,70 +0,0 @@ -#!/bin/python -# Tests for file identifiables -# A. Schlemmer, 06/2021 - -from unittest.mock import Mock, patch - -import caosdb as db -import pytest -from caoscrawler.identifiable import Identifiable -from caoscrawler.identifiable_adapters import LocalStorageIdentifiableAdapter -from caoscrawler.sync_graph import SyncNode -from caosdb.cached import cache_clear -from caosdb.exceptions import EmptyUniqueQueryError -from pytest import raises - -from test_crawler import mock_get_entity_by - - -@pytest.fixture(autouse=True) -def clear_cache(): - cache_clear() - - -@patch("caoscrawler.identifiable_adapters.get_children_of_rt", - new=Mock(side_effect=id)) -@patch("caoscrawler.identifiable_adapters.cached_get_entity_by", - new=Mock(side_effect=mock_get_entity_by)) -def test_file_identifiable(): - ident = LocalStorageIdentifiableAdapter() - - # Without a path there is no identifying information - with raises(ValueError): - ident.get_identifiable(SyncNode(db.File(), None), []) - - fp = "/test/bla/bla.txt" - file_obj = db.File(path=fp) - identifiable = ident.get_identifiable(SyncNode(file_obj, None), []) - - # the path is copied to the identifiable - assert fp == identifiable.path - assert isinstance(identifiable, Identifiable) - - # __eq__ function is only defined for Identifiable objects - with raises(ValueError): - file_obj != identifiable - - # since the path does not exist in the data in ident, the follwoing functions return None - with raises(EmptyUniqueQueryError): - ident.retrieve_identified_record_for_record(file_obj) - assert ident.get_file(identifiable) is None - - # Try again with actual files in the store: - records = ident.get_records() - test_record_wrong_path = db.File(path="/bla/bla/test.txt") - test_record_correct_path = db.File(path="/test/bla/bla.txt") - test_record_alsocorrect_path = db.File(path="/test/bla/bla.txt") - records.append(test_record_wrong_path) - # Now, there is a file, but still wrong path -> result is still None - identified_file = ident.get_file(file_obj) - assert identified_file is None - - records.append(test_record_correct_path) - # now there is a match - identified_file = ident.get_file(file_obj) - assert identified_file is not None - assert identified_file.path == file_obj.path - - with raises(RuntimeError, match=".*unambigiously.*"): - records.append(test_record_alsocorrect_path) - identified_file = ident.get_file(file_obj) -- GitLab