diff --git a/arkindex_worker/worker/base.py b/arkindex_worker/worker/base.py index 65d11da6386ac3940d5b899311b45651418acfa0..8e6113d50ca228f043aeca7e727a41a22dbe813e 100644 --- a/arkindex_worker/worker/base.py +++ b/arkindex_worker/worker/base.py @@ -176,7 +176,7 @@ class BaseWorker(object): "user_configuration" ].items(): if "default" in value: - self.user_configuration.update({key: value["default"]}) + self.user_configuration[key] = value["default"] self.worker_details = worker_version["worker"] required_secrets = worker_version["configuration"].get("secrets", []) elif self.args.config: diff --git a/tests/conftest.py b/tests/conftest.py index a1e5049b8a163df6e12fd912723dafe5666c2a7d..b7b3fc03945734f8ada23b7ebcca19aa26ee1e1a 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -102,8 +102,6 @@ def setup_api(responses, monkeypatch, cache_yaml): @pytest.fixture(autouse=True) def give_env_variable(request, monkeypatch): - if "disable_autouse_env" in request.keywords: - return """Defines required environment variables""" monkeypatch.setenv("WORKER_VERSION_ID", "12341234-1234-1234-1234-123412341234") monkeypatch.setenv("ARKINDEX_PROCESS_ID", "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeffff") @@ -149,6 +147,38 @@ def mock_worker_version_api(responses): ) +@pytest.fixture +def mock_worker_version_user_configuration_api(responses): + """Provide a mock API response to get worker configuration""" + payload = { + "worker": {"id": "1234", "name": "Workerino", "slug": "workerino"}, + "revision": {"hash": "1234lala-lalalalala-lala"}, + "configuration": { + "configuration": {"param_1": "/some/path/file.pth", "param_2": 12}, + "user_configuration": { + "param_3": { + "title": "A Third Parameter", + "type": "string", + "default": "Animula vagula blandula", + }, + "param_4": {"title": "Parameter The Fourth", "type": "int"}, + "param_5": { + "title": "Parameter 5 (Five)", + "type": "bool", + "default": True, + }, + }, + }, + } + responses.add( + responses.GET, + "http://testserver/api/v1/workers/versions/12341234-1234-1234-1234-123412341234/", + status=200, + body=json.dumps(payload), + content_type="application/json", + ) + + @pytest.fixture def mock_process_api(responses): """Provide a mock of the API response to get information on a process. Workers activity is enabled""" diff --git a/tests/test_base_worker.py b/tests/test_base_worker.py index d0c63fa4652ba6ba3e2c842ca39b3b4782fe5454..fbcbfb45dcc186210ed155263f92d06dc8263be2 100644 --- a/tests/test_base_worker.py +++ b/tests/test_base_worker.py @@ -1,10 +1,8 @@ # -*- coding: utf-8 -*- -import json import logging import os import sys from pathlib import Path -from unittest import mock import gnupg import pytest @@ -162,38 +160,14 @@ def test_configure_worker_run(mocker, monkeypatch, responses, mock_config_api): assert worker.user_configuration == {"a": "b"} -@pytest.mark.disable_autouse_env -@mock.patch.dict( - os.environ, - { - "WORKER_VERSION_ID": "ddddddddd-dddd-dddd-dddd-dddddddddddd", - "ARKINDEX_PROCESS_ID": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeffff", - }, -) def test_configure_user_configuration_defaults( - mocker, monkeypatch, mock_user_api, mock_process_api, responses + mocker, + monkeypatch, + mock_worker_version_user_configuration_api, + mock_user_api, + mock_process_api, + responses, ): - worker_version = { - "worker": {"id": "1234", "name": "Workerino", "slug": "workerino"}, - "revision": {"hash": "1234lala-lalalalala-lala"}, - "configuration": { - "configuration": {"param_1": "/some/path/file.pth", "param_2": 12}, - "user_configuration": { - "param_3": { - "title": "A Third Parameter", - "type": "string", - "default": "Animula vagula blandula", - }, - "param_4": {"title": "Parameter The Fourth", "type": "int"}, - "param_5": { - "title": "Parameter 5 (Five)", - "type": "bool", - "default": True, - }, - }, - }, - } - test_worker_version_id = "ddddddddd-dddd-dddd-dddd-dddddddddddd" worker = BaseWorker() mocker.patch.object(sys, "argv") run_id = "aaaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" @@ -203,12 +177,6 @@ def test_configure_user_configuration_defaults( f"http://testserver/api/v1/imports/workers/{run_id}/", json={"id": run_id}, ) - responses.add( - responses.GET, - f"http://testserver/api/v1/workers/versions/{test_worker_version_id}/", - body=json.dumps(worker_version), - content_type="application/json", - ) worker.configure() assert worker.config == {"param_1": "/some/path/file.pth", "param_2": 12} diff --git a/tox.ini b/tox.ini index 6dd6c78857b6ac04165c16fc12c2bc7da3361b42..aa0cb057b524dbd1f80595c7e06f54953a378df5 100644 --- a/tox.ini +++ b/tox.ini @@ -14,5 +14,3 @@ deps = [pytest] testpaths = tests -markers = - disable_autouse_env: do not use pre-set (autouse) environment variables.