Skip to content
Snippets Groups Projects

Port init elements code

Merged Manon Blanco requested to merge init-element-worker into master
3 files
+ 117
58
Compare changes
  • Side-by-side
  • Inline
Files
3
+ 74
13
import os
import sys
import pytest
@@ -7,8 +8,13 @@ from arkindex_worker.worker.base import BaseWorker
from worker_init_elements.worker import InitElementWorker
@pytest.fixture()
def mock_api_client() -> MockApiClient:
return MockApiClient()
@pytest.fixture(autouse=True)
def _setup_environment(responses, monkeypatch) -> None:
def _setup_environment(mock_api_client: MockApiClient, responses, monkeypatch) -> None:
"""Setup needed environment variables"""
# Allow accessing remote API schemas
@@ -28,25 +34,80 @@ def _setup_environment(responses, monkeypatch) -> None:
# Setup a mock api client instead of using a real one
def mock_setup_api_client(self):
self.api_client = MockApiClient()
self.api_client = mock_api_client
monkeypatch.setattr(BaseWorker, "setup_api_client", mock_setup_api_client)
@pytest.fixture()
def mock_worker(tmp_path_factory) -> InitElementWorker:
worker = InitElementWorker()
def _mock_worker_run_api(mock_api_client: MockApiClient) -> None:
"""Provide a mock API response to get worker run information"""
mock_api_client.add_response(
"RetrieveWorkerRun",
id=os.getenv("ARKINDEX_WORKER_RUN_ID"),
response={
"id": os.getenv("ARKINDEX_WORKER_RUN_ID"),
"worker_version": {
"id": "12341234-1234-1234-1234-123412341234",
"revision": {"hash": "deadbeef1234"},
"worker": {"name": "Fake worker"},
"configuration": {
"name": "Init Elements",
"slug": "init-elements",
"type": "extractor",
"docker": {
"build": "Dockerfile",
"image": "",
"command": None,
"context": None,
"shm_size": None,
"environment": {},
},
"secrets": [],
"description": None,
"configuration": {},
"user_configuration": {
"chunks_number": {
"type": "int",
"title": "Chunks number",
"default": 1,
"required": True,
},
"use_cache": {
"type": "bool",
"title": "Use cache",
"default": False,
},
"threshold_value": {
"type": "float",
"title": "Threshold Value",
"default": 0.1,
"subtype": "number",
"required": False,
},
"sleep": {
"type": "float",
"title": "Sleep",
"default": 0.0,
},
},
},
},
"configuration": None,
"process": {"id": "process_id", "corpus": os.getenv("ARKINDEX_CORPUS_ID")},
"summary": os.getenv("ARKINDEX_WORKER_RUN_ID") + " @ version 1",
},
)
# Default parameters
worker.chunks_number = 1
worker.use_cache = False
worker.work_dir = tmp_path_factory.mktemp("data")
@pytest.fixture()
def mock_worker(
_mock_worker_run_api, tmp_path_factory, monkeypatch
) -> InitElementWorker:
monkeypatch.setattr(sys, "argv", ["worker-init-elements"])
worker.worker_run_id = os.environ["ARKINDEX_WORKER_RUN_ID"]
worker.process = {
"id": "process_id",
"corpus": os.environ["ARKINDEX_CORPUS_ID"],
}
worker = InitElementWorker()
worker.work_dir = tmp_path_factory.mktemp("data")
worker.configure()
return worker
Loading