From 63c8db1f6364cf82c3a3be2adf047528357bbbb9 Mon Sep 17 00:00:00 2001
From: Daniel <daniel@harvey>
Date: Tue, 18 Aug 2020 17:52:07 +0200
Subject: [PATCH] ENH: Test for server issue 99.

Warning: may cause an infinite loop with output in one server thread.
---
 tests/test_issues_server.py | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/tests/test_issues_server.py b/tests/test_issues_server.py
index 2f4b5c5..d36a6b2 100644
--- a/tests/test_issues_server.py
+++ b/tests/test_issues_server.py
@@ -24,6 +24,10 @@
 
 """Tests for issues on gitlab.com, project caosdb-server."""
 
+import os
+import tempfile
+import time
+
 import caosdb as db
 from caosdb.exceptions import EntityError, TransactionError
 import pytest
@@ -137,3 +141,27 @@ def test_issue_85_b():
     C.update()
     C.add_parent(A)
     C.update()  # Failed at this step
+
+
+def test_issue_99():
+    """Checksum updating failed with versioning enabled.
+    """
+
+    # Using files in extroot, because this allows us to update the file content from the outside.
+    local_dir = os.path.join(db.get_config().get("IntegrationTests",
+                                                 "test_files.test_insert_files_in_dir.local"),
+                             "test_issue_99")
+    docker_dir = os.path.join(db.get_config().get("IntegrationTests",
+                                                  "test_files.test_insert_files_in_dir.server"),
+                              "test_issue_99")
+    with tempfile.NamedTemporaryFile(dir=local_dir) as file_99:
+        # Create File entity in CaosDB
+        c = db.Container()
+        c.insert(unique=False, raise_exception_on_error=False,
+                 flags={"InsertFilesInDir": docker_dir})
+        dbfile = c[0]
+
+        # Checksum should exist after a short time
+        time.sleep(0.5)
+        dbfile.retrieve()
+        assert dbfile.checksum is not None
-- 
GitLab