Source code for ewoksserver.tests.test_discover
import pytest
from ewoksjob.client.futures import TimeoutError
[docs]
def test_discover_tasks_from_a_module(rest_client, default_task_identifiers, api_root):
response = rest_client.get(f"{api_root}/tasks")
data = response.json()
assert response.status_code == 200
assert sorted(data["identifiers"]) == sorted(default_task_identifiers)
module = "ewoksserver.tests.dummy_tasks"
response = rest_client.post(
f"{api_root}/tasks/discover", json={"modules": [module]}
)
data = response.json()
assert response.status_code == 200, data
expected = [
"ewoksserver.tests.dummy_tasks.MyTask1",
"ewoksserver.tests.dummy_tasks.MyTask2",
"ewoksserver.tests.dummy_tasks.my_task3",
]
assert sorted(data["identifiers"]) == sorted(expected)
response = rest_client.get(f"{api_root}/tasks")
data = response.json()
assert response.status_code == 200
expected = default_task_identifiers + [
"ewoksserver.tests.dummy_tasks.MyTask1",
"ewoksserver.tests.dummy_tasks.MyTask2",
"ewoksserver.tests.dummy_tasks.my_task3",
]
assert sorted(data["identifiers"]) == sorted(expected)
[docs]
def test_discover_method_task_type(rest_client, api_root):
module = "ewoksserver.tests.dummy_tasks"
response = rest_client.post(
f"{api_root}/tasks/discover",
json={"modules": [module], "task_type": "method"},
)
data = response.json()
assert response.status_code == 200
assert sorted(data["identifiers"]) == ["ewoksserver.tests.dummy_tasks.my_task3"]
[docs]
def test_discover_all_tasks(rest_client, default_task_identifiers, api_root):
response = rest_client.get(f"{api_root}/tasks")
data = response.json()
assert response.status_code == 200
assert sorted(data["identifiers"]) == sorted(default_task_identifiers)
response = rest_client.post(f"{api_root}/tasks/discover")
data = response.json()
assert response.status_code == 200, data
expected = default_task_identifiers + [
"ewokscore.tests.examples.tasks.addfunc.addfunc",
"ewokscore.tests.examples.tasks.condsumtask.CondSumTask",
"ewokscore.tests.examples.tasks.errorsumtask.ErrorSumTask",
"ewokscore.tests.examples.tasks.nooutputtask.NoOutputTask",
"ewokscore.tests.examples.tasks.simplemethods.add",
"ewokscore.tests.examples.tasks.simplemethods.append",
]
assert set(expected) <= set(data["identifiers"])
response = rest_client.get(f"{api_root}/tasks")
data = response.json()
assert response.status_code == 200
assert set(expected) <= set(data["identifiers"])
[docs]
def test_discover_in_a_non_existing_module(rest_client, api_root):
response = rest_client.post(
f"{api_root}/tasks/discover", json={"modules": ["not_a_module"]}
)
data = response.json()
assert response.status_code == 404, data
assert "No module named" in data["message"]
response = rest_client.post(f"{api_root}/tasks/discover")
data = response.json()
assert response.status_code == 200, data
assert data["identifiers"]
[docs]
def test_discover_timeout(celery_discover_timeout_client, api_root):
rest_client, _ = celery_discover_timeout_client
with pytest.raises(TimeoutError):
rest_client.post(f"{api_root}/tasks/discover")