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