diff --git a/unittests/simulated_server_data.py b/unittests/simulated_server_data.py
new file mode 100644
index 0000000000000000000000000000000000000000..6a523dbb06397b380510f72502a76cc6bda5f06c
--- /dev/null
+++ b/unittests/simulated_server_data.py
@@ -0,0 +1,24 @@
+
+import caosdb as db
+data_model = {"person": (db.RecordType(id=10001, name="Person")
+                         .add_property(name="first_name")
+                         .add_property(name="last_name")),
+              "measurement": (db.RecordType(id=10002, name="Measurement")
+                              .add_property(name="identifier")
+                              .add_property(name="date")
+                              .add_property(name="project")),
+              "project": (db.RecordType(id=10003, name="Project")
+                          .add_property(name="date")
+                          .add_property(name="identifier")),
+              "first_name": db.Property(name="first_name", datatype=db.TEXT, id=10004),
+              "responsible": db.Property(name="responsible", datatype="Person", id=10005),
+              "last_name": db.Property(name="last_name", datatype=db.TEXT, id=10006),
+              "identifier": db.Property(name="identifier", datatype=db.TEXT, id=10007),
+              "date": db.Property(name="date", datatype=db.DATETIME, id=10008),
+              }
+existing_data = {
+}
+
+full_data = {}
+full_data.update(data_model)
+full_data.update(existing_data)
diff --git a/unittests/test_table_converter.py b/unittests/test_table_converter.py
index eecb674eae9db4410f254b157128eb64d5d66880..85255d3efd34dc666d5d2e97423f33177dea6732 100644
--- a/unittests/test_table_converter.py
+++ b/unittests/test_table_converter.py
@@ -29,12 +29,12 @@ test the converters module
 from caoscrawler.converters import Converter
 from caoscrawler.stores import GeneralStore
 from caoscrawler.converters import (ConverterValidationError,
-                                   DictConverter, XLSXTableConverter, CSVTableConverter)
+                                    DictConverter, XLSXTableConverter, CSVTableConverter)
 from caoscrawler.structure_elements import Directory
 from caoscrawler.structure_elements import (File, DictTextElement,
-                                           DictListElement, DictElement,
-                                           DictBooleanElement, DictDictElement,
-                                           DictIntegerElement, DictFloatElement)
+                                            DictListElement, DictElement,
+                                            DictBooleanElement, DictDictElement,
+                                            DictIntegerElement, DictFloatElement)
 
 from os.path import join, dirname, basename
 
@@ -103,7 +103,10 @@ def crawler():
 
 
 def test_convert_table(converter_registry):
-    for file_ext in ["xlsx", "ods", "csv", "tsv"]:
+    extentions = ["xlsx", "csv", "tsv"]
+    if importlib.util.find_spec("odf") is not None:
+        extentions.append("ods")
+    for file_ext in extentions:
         def_opt = {"skiprows": ["1", "2"], "header": 0}
         if file_ext == "tsv":
             def_opt["sep"] = "\t"
diff --git a/unittests/test_tool.py b/unittests/test_tool.py
index cf86cc47f48ec4fcad55260e9d89480666d16808..fac8b60ac2d8f03322ba331c4d23e8ec69f9e1d4 100755
--- a/unittests/test_tool.py
+++ b/unittests/test_tool.py
@@ -6,6 +6,7 @@
 from caoscrawler.crawl import Crawler, SecurityMode
 from caoscrawler.structure_elements import File, DictTextElement, DictListElement
 from caoscrawler.identifiable_adapters import IdentifiableAdapter, LocalStorageIdentifiableAdapter
+from simulated_server_data import full_data
 from functools import partial
 from copy import deepcopy
 from unittest.mock import patch
@@ -549,10 +550,13 @@ def test_security_mode_trivial(updateCacheMock, insmock, upmock, ident):
                             rfp("scifolder_cfood.yml"))
     crawler.identifiableAdapter = ident
 
-    def find_record(name):
-        print(name)
-        return [el for el in ident.get_records() if el.name == name][0]
-    Crawler._get_entity_by_name = find_record
+    def mock_get_entity_by_name(name):
+        candidates = [el for el in full_data.values() if el.name.lower() == name.lower()]
+        if len(candidates) > 0:
+            return candidates[0]
+        else:
+            return None
+    Crawler._get_entity_by_name = mock_get_entity_by_name
     #Crawler._get_entity_by_name = lambda x: db.RecordType(id=1111, name="A")
     insl, updl = crawler.synchronize(commit_changes=True)
     assert crawler.run_id is not None
@@ -570,29 +574,13 @@ def test_security_mode_forbidden(updateCacheMock, insmock, upmock, ident):
                             rfp("scifolder_cfood.yml"))
     crawler.identifiableAdapter = ident
 
-    def find_record(name):
-        name = name.lower()
-        state = {"person": (db.RecordType(id=10001)
-                            .add_parent(name="Person")
-                              .add_property(name="first_name")
-                            .add_property(name="last_name")),
-                 "measurement": (db.RecordType(id=10002)
-                                 .add_parent(name="Measurement")
-                                 .add_property(name="identifier")
-                                 .add_property(name="date")
-                                 .add_property(name="project")),
-                 "project": (db.RecordType(id=10003)
-                             .add_parent(name="Project")
-                             .add_property(name="date")
-                             .add_property(name="identifier")),
-                 "first_name": db.Property(name="first_name", datatype=db.TEXT, id=10004),
-                 "responsible": db.Property(name="responsible", datatype="Person", id=10005),
-                 "last_name": db.Property(name="last_name", datatype=db.TEXT, id=10006),
-                 "identifier": db.Property(name="identifier", datatype=db.TEXT, id=10007),
-                 "date": db.Property(name="date", datatype=db.DATETIME, id=10008),
-                 }
-        return state[name]
-    Crawler._get_entity_by_name = find_record
+    def mock_get_entity_by_name(name):
+        candidates = [el for el in full_data.values() if el.name.lower() == name.lower()]
+        if len(candidates) > 0:
+            return candidates[0]
+        else:
+            return None
+    Crawler._get_entity_by_name = mock_get_entity_by_name
     del ident._records[-1]
     insl, updl = crawler.synchronize(commit_changes=True)
     assert crawler.run_id is not None
@@ -609,30 +597,16 @@ def test_security_mode_forbidden_up(updateCacheMock, insmock, upmock, ident):
     crawler.crawl_directory(rfp("test_directories", "examples_article"),
                             rfp("scifolder_cfood.yml"))
     crawler.identifiableAdapter = ident
+    state = full_data
+
+    def mock_get_entity_by_name(name):
+        candidates = [el for el in full_data.values() if el.name.lower() == name.lower()]
+        if len(candidates) > 0:
+            return candidates[0]
+        else:
+            return None
+    Crawler._get_entity_by_name = mock_get_entity_by_name
 
-    def find_record(name):
-        name = name.lower()
-        state = {"person": (db.RecordType(id=10001)
-                            .add_parent(name="Person")
-                              .add_property(name="first_name")
-                            .add_property(name="last_name")),
-                 "measurement": (db.RecordType(id=10002)
-                                 .add_parent(name="Measurement")
-                                 .add_property(name="identifier")
-                                 .add_property(name="date")
-                                 .add_property(name="project")),
-                 "project": (db.RecordType(id=10003)
-                             .add_parent(name="Project")
-                             .add_property(name="date")
-                             .add_property(name="identifier")),
-                 "first_name": db.Property(name="first_name", datatype=db.TEXT, id=10004),
-                 "responsible": db.Property(name="responsible", datatype="Person", id=10005),
-                 "last_name": db.Property(name="last_name", datatype=db.TEXT, id=10006),
-                 "identifier": db.Property(name="identifier", datatype=db.TEXT, id=10007),
-                 "date": db.Property(name="date", datatype=db.DATETIME, id=10008),
-                 }
-        return state[name]
-    Crawler._get_entity_by_name = find_record
     del ident._registered_identifiables["Person"]
     insl, updl = crawler.synchronize(commit_changes=True)
     assert crawler.run_id is not None