diff --git a/tests/test_file.py b/tests/test_file.py
index 5869af4cc1644b577d92d8cb987b14988c63057c..35e4a0bd28ba00604d08cfd31260edf17b3d6bb5 100644
--- a/tests/test_file.py
+++ b/tests/test_file.py
@@ -421,21 +421,144 @@ def test_import_directoy_recursively():
     c.append(directory)
     c.insert()
 
-    assert len(c) == 2
+    assert len(c) == 3 # testfolder, testfolder/subfolder, testfolder/subfolder/some_data.csv
     for e in c:
         if e.role == "Directory":
-            assert e.path == "testfolder/subfolder"
+            assert e.path == "/testfolder/subfolder" or e.path == "/testfolder"
         else:
             assert e.role == "File"
-            assert e.path == "testfolder/subfolder/some_data.csv"
+            assert e.path == "/testfolder/subfolder/some_data.csv"
 
-    re = db.execute_query("FIND Entity WHICH IS STORED AT /testfolder/subfolder*")
+    re = db.execute_query("FIND Entity WHICH IS STORED AT /testfolder/subfolder**")
+    assert len(re) == 2
     for e in re:
         if e.role == "Directory":
-            assert e.path == "testfolder/subfolder"
+            assert e.path == "/testfolder/subfolder"
         else:
             assert e.role == "File"
-            assert e.path == "testfolder/subfolder/some_data.csv"
+            assert e.path == "/testfolder/subfolder/some_data.csv"
+
+def test_import_directoy_recursively_deep():
+    path = get_config().get("IntegrationTests",
+                            "test_files.test_import_files_in_dir.local")
+    if not path.endswith("/"):
+        path = path[:-1]
+    folders = ["/testfolder" + folder for folder in [
+    "/subfolder1",
+    "/subfolder1/subsubfolder1.1",
+    "/subfolder2",
+    "/subfolder2/subsubfolder2.1",
+    "/subfolder2/subsubfolder2.2",
+    "/subfolder2/subsubfolder2.2/subsubsubfolder2.2.1",
+    "/subfolder3",
+    "/subfolder3/subsubfolder3.1",
+    "/subfolder3/subsubfolder3.2",
+    "/subfolder3/subsubfolder3.2/subsubsubfolder3.2.1",
+    "/subfolder3/subsubfolder3.2/subsubsubfolder3.2.2",
+    "/subfolder3/subsubfolder3.2/subsubsubfolder3.2.2/subsubsubsubfolder3.2.2.1",
+    "/subfolder3/subsubfolder3.3",
+    "/subfolder3/subsubfolder3.3/subsubsubfolder3.3.1",
+    "/subfolder3/subsubfolder3.3/subsubsubfolder3.3.2",
+    "/subfolder3/subsubfolder3.3/subsubsubfolder3.3.2/subsubsubsubfolder3.3.2.1",
+    "/subfolder3/subsubfolder3.3/subsubsubfolder3.3.3",
+    "/subfolder3/subsubfolder3.3/subsubsubfolder3.3.3/subsubsubsubfolder3.3.3.1",
+    "/subfolder3/subsubfolder3.3/subsubsubfolder3.3.3/subsubsubsubfolder3.3.3.2",
+    "/subfolder3/subsubfolder3.3/subsubsubfolder3.3.3/subsubsubsubfolder3.3.3.2/subsubsubsubsubfolder3.3.3.2.1",
+            ]]
+    files = []
+    for folder in folders:
+        os.makedirs(path + folder)
+
+        with open(path + folder + "/some_data1.csv", "w") as test_file1:
+            test_file1.write(f"1: hello {folder}\n")
+            files.append(folder + "/some_data1.csv")
+        with open(path + folder + "/some_data2.csv", "w") as test_file1:
+            test_file1.write(f"2: hello {folder}\n")
+            files.append(folder + "/some_data2.csv")
+    folders.append("/testfolder")
+
+    directory = db.common.models.Directory(recursive_import=True, path="testfolder")
+
+    c = db.Container()
+    c.append(directory)
+    c.insert()
+
+    assert len(c) == 20+20+20+1
+    assert set(folders + files) == set([e.path for e in c])
+
+    re = execute_query("FIND ENTITY WHICH IS STORED AT testfolder**")
+    assert len(re) == 20+20+20+1
+    assert set(folders + files) == set([e.path for e in re])
+
+
+def test_update_import_single_file():
+    path = get_config().get("IntegrationTests",
+                            "test_files.test_import_files_in_dir.local") + "testfolder/"
+
+    os.makedirs(path)
+    os.makedirs(path + "subfolder/")
+    local_file = os.path.join(path, "subfolder", "some_data.csv")
+    with open(local_file, "w") as test_file1:
+        test_file1.write("hello, world\n")
+
+    file_ = db.File(import_file=True,
+                    path="testfolder/subfolder/some_data.csv")
+
+    file_.insert()
+    version = file_.version
+
+    file_.checksum = None
+    file_.size = None
+    re = file_.update(sync=False)
+    assert re.version == version
+    assert re.messages[0].description == "Nothing to be updated."
+
+    # update file on the disc
+    with open(local_file, "w") as test_file1:
+        test_file1.write("hello, othre worlds\n")
+
+    # do a consistency_check
+    c = runCheck(None, "testfolder/subfolder/some_data.csv")
+    assert c.messages["Error",
+                      0][0] == 'CHANGED:SIZE - DEFAULT:testfolder/subfolder/some_data.csv'
+
+    re = file_.update(sync=False)
+    assert re.version != version
+
+    # update file on the disc
+    with open(local_file, "w") as test_file1:
+        test_file1.write("hello, other worlds\n")
+    c = runCheck(None, "testfolder/subfolder/some_data.csv")
+    assert c.messages["Error",
+                      0][0] == 'CHANGED:HASH - DEFAULT:testfolder/subfolder/some_data.csv'
+
+    re = file_.update(sync=False)
+    assert re.version != version
+
+
+def test_update_import_directory_new_children():
+    path = get_config().get("IntegrationTests",
+                            "test_files.test_import_files_in_dir.local") + "testfolder/"
+
+    os.makedirs(path)
+    os.makedirs(path + "subfolder/")
+    with open(path + "subfolder/some_data.csv", "w") as test_file1:
+        test_file1.write("hello, world\n")
+
+    directory = db.common.models.Directory(recursive_import=True, path="testfolder/subfolder/")
+
+    c = db.Container()
+    c.append(directory)
+    c.insert()
+
+    version = directory.version
+
+    with open(path + "subfolder/some_data2.csv", "w") as test_file1:
+        test_file1.write("hello, world2\n")
+
+    re = directory.update(sync=False)
+    print(re)
+    assert re.version != version
 
 
 def test_consistency_file_was_modified_2():