diff --git a/arkindex_worker/worker.py b/arkindex_worker/worker.py index c0556b0298fb6dd7363ed4f5a9f63486c7a2aa76..46aab69251b86f3674f198cda02ac62e656d9531 100644 --- a/arkindex_worker/worker.py +++ b/arkindex_worker/worker.py @@ -30,6 +30,12 @@ class BaseWorker(object): self.work_dir = os.path.join(xdg_data_home, "arkindex") os.makedirs(self.work_dir, exist_ok=True) + self.worker_version_id = os.environ.get("WORKER_VERSION_ID") + if not self.worker_version_id: + raise Exception( + "Missing WORKER_VERSION_ID environment variable to start the Worker" + ) + logger.info(f"Worker will use {self.work_dir} as working directory") def configure(self): @@ -192,6 +198,7 @@ class ElementsWorker(BaseWorker): "corpus": element.corpus.id, "polygon": polygon, "parent": element.id, + "worker_version": self.worker_version_id, }, ) self.report.add_element(element.id, type) diff --git a/tests/conftest.py b/tests/conftest.py index a81af1faa000b8ae3eac5b9ef9216a6144052c21..d98065c802ff17cc3a81b71e8374abf6b09d72d6 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -8,3 +8,8 @@ import pytest def pass_schema(responses): schema_url = os.environ.get("ARKINDEX_API_SCHEMA_URL") responses.add_passthru(schema_url) + + +@pytest.fixture(autouse=True) +def give_worker_version_id_env_variable(monkeypatch): + monkeypatch.setenv("WORKER_VERSION_ID", "12341234-1234-1234-1234-123412341234") diff --git a/tests/test_base_worker.py b/tests/test_base_worker.py index 74098597d01210736a355ff27c5f81276251a95c..fb9284ad5be8c4eaa82a1028d8e7c8e4a54dd70e 100644 --- a/tests/test_base_worker.py +++ b/tests/test_base_worker.py @@ -4,6 +4,8 @@ import os import sys from pathlib import Path +import pytest + from arkindex_worker import logger from arkindex_worker.worker import BaseWorker @@ -12,6 +14,7 @@ def test_init_default_local_share(): worker = BaseWorker() assert worker.work_dir == os.path.expanduser("~/.local/share/arkindex") + assert worker.worker_version_id == "12341234-1234-1234-1234-123412341234" def test_init_default_xdg_data_home(monkeypatch): @@ -20,6 +23,7 @@ def test_init_default_xdg_data_home(monkeypatch): worker = BaseWorker() assert worker.work_dir == f"{path}/arkindex" + assert worker.worker_version_id == "12341234-1234-1234-1234-123412341234" def test_init_var_ponos_data_given(monkeypatch): @@ -28,6 +32,17 @@ def test_init_var_ponos_data_given(monkeypatch): worker = BaseWorker() assert worker.work_dir == f"{path}/current" + assert worker.worker_version_id == "12341234-1234-1234-1234-123412341234" + + +def test_init_var_worker_version_id_missing(monkeypatch): + monkeypatch.delenv("WORKER_VERSION_ID") + with pytest.raises(Exception) as e: + BaseWorker() + assert ( + str(e.value) + == "Missing WORKER_VERSION_ID environment variable to start the Worker" + ) def test_cli_default(mocker):