Skip to content
Snippets Groups Projects
Commit cfd84da2 authored by ml bonhomme's avatar ml bonhomme :bee:
Browse files

update self.config with default user_configuration values [skip ci]

parent 1da1bb24
No related branches found
No related tags found
1 merge request!172update self.config with default user_configuration values
Pipeline #79237 skipped
This commit is part of merge request !172. Comments created here will be created in the context of that merge request.
......@@ -170,6 +170,13 @@ class BaseWorker(object):
f"Loaded worker {worker_version['worker']['name']} revision {worker_version['revision']['hash'][0:7]} from API"
)
self.config = worker_version["configuration"]["configuration"]
if "user_configuration" in worker_version["configuration"]:
# Use default values from user configurable parameters if they are set
for key, value in worker_version["configuration"][
"user_configuration"
].items():
if "default" in value:
self.config.update({key: value["default"]})
self.worker_details = worker_version["worker"]
required_secrets = worker_version["configuration"].get("secrets", [])
elif self.args.config:
......
......@@ -101,7 +101,9 @@ def setup_api(responses, monkeypatch, cache_yaml):
@pytest.fixture(autouse=True)
def give_env_variable(monkeypatch):
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")
......
# -*- coding: utf-8 -*-
import json
import logging
import os
import sys
from pathlib import Path
from unittest import mock
import gnupg
import pytest
......@@ -160,11 +162,40 @@ def test_configure_worker_run(mocker, monkeypatch, responses, mock_config_api):
assert worker.user_configuration == {"a": "b"}
def test_configure_worker_run_missing_worker_conf(
mocker, monkeypatch, responses, mock_config_api
@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
):
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", ["worker"])
mocker.patch.object(sys, "argv")
run_id = "aaaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
monkeypatch.setenv("ARKINDEX_WORKER_RUN_ID", run_id)
responses.add(
......@@ -172,9 +203,20 @@ def test_configure_worker_run_missing_worker_conf(
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.user_configuration == {}
assert worker.config == {
"param_1": "/some/path/file.pth",
"param_2": 12,
"param_3": "Animula vagula blandula",
"param_5": True,
}
def test_configure_worker_run_missing_conf(
......
......@@ -14,3 +14,5 @@ deps =
[pytest]
testpaths =
tests
markers =
disable_autouse_env: do not use pre-set (autouse) environment variables.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment