diff --git a/tests/conftest.py b/tests/conftest.py index f058997..fddd32f 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -3,12 +3,19 @@ # pylint: disable=unused-argument import os import pytest -from os import path - -from fastapi.testclient import TestClient -import os.path as path import datetime +from os import path +from os import makedirs +from typing import Generator +from fastapi.testclient import TestClient + +from selfprivacy_api.utils.huey import huey + +import selfprivacy_api.services as services +from selfprivacy_api.services import get_service_by_id, Service +from selfprivacy_api.services.test_service import DummyService + from selfprivacy_api.models.tokens.token import Token from selfprivacy_api.repositories.tokens.json_tokens_repository import ( JsonTokensRepository, @@ -19,6 +26,9 @@ from selfprivacy_api.repositories.tokens.redis_tokens_repository import ( from tests.common import read_json +TESTFILE_BODY = "testytest!" +TESTFILE_2_BODY = "testissimo!" + EMPTY_TOKENS_JSON = ' {"tokens": []}' @@ -147,3 +157,49 @@ def wrong_auth_client(tokens_file, huey_database, jobs_file): client = TestClient(app) client.headers.update({"Authorization": "Bearer WRONG_TOKEN"}) return client + + +@pytest.fixture() +def raw_dummy_service(tmpdir): + dirnames = ["test_service", "also_test_service"] + service_dirs = [] + for d in dirnames: + service_dir = path.join(tmpdir, d) + makedirs(service_dir) + service_dirs.append(service_dir) + + testfile_path_1 = path.join(service_dirs[0], "testfile.txt") + with open(testfile_path_1, "w") as file: + file.write(TESTFILE_BODY) + + testfile_path_2 = path.join(service_dirs[1], "testfile2.txt") + with open(testfile_path_2, "w") as file: + file.write(TESTFILE_2_BODY) + + # we need this to not change get_folders() much + class TestDummyService(DummyService, folders=service_dirs): + pass + + service = TestDummyService() + # assert pickle.dumps(service) is not None + return service + + +@pytest.fixture() +def dummy_service( + tmpdir, raw_dummy_service, generic_userdata +) -> Generator[Service, None, None]: + service = raw_dummy_service + + # register our service + services.services.append(service) + + huey.immediate = True + assert huey.immediate is True + + assert get_service_by_id(service.get_id()) is not None + service.enable() + yield service + + # cleanup because apparently it matters wrt tasks + services.services.remove(service) diff --git a/tests/test_backup.py b/tests/test_backup.py index bb9e217..036dd42 100644 --- a/tests/test_backup.py +++ b/tests/test_backup.py @@ -16,8 +16,6 @@ import tempfile from selfprivacy_api.utils.huey import huey -from tests.test_common import dummy_service, raw_dummy_service - from selfprivacy_api.services import Service, get_all_services from selfprivacy_api.services import get_service_by_id from selfprivacy_api.services.service import ServiceStatus diff --git a/tests/test_block_device_utils.py b/tests/test_block_device_utils.py index 0fa99f1..7a85c50 100644 --- a/tests/test_block_device_utils.py +++ b/tests/test_block_device_utils.py @@ -13,7 +13,6 @@ from selfprivacy_api.utils.block_devices import ( resize_block_device, ) from tests.common import read_json -from tests.test_common import dummy_service, raw_dummy_service SINGLE_LSBLK_OUTPUT = b""" { diff --git a/tests/test_common.py b/tests/test_common.py index 5c433a0..7dd3652 100644 --- a/tests/test_common.py +++ b/tests/test_common.py @@ -1,70 +1,9 @@ # pylint: disable=redefined-outer-name # pylint: disable=unused-argument -import json import os import pytest from selfprivacy_api.utils import WriteUserData, ReadUserData -from selfprivacy_api.utils.huey import huey - -from os import path -from os import makedirs -from typing import Generator - -# import pickle -import selfprivacy_api.services as services -from selfprivacy_api.services import get_service_by_id, Service -from selfprivacy_api.services.test_service import DummyService - - -TESTFILE_BODY = "testytest!" -TESTFILE_2_BODY = "testissimo!" - - -@pytest.fixture() -def raw_dummy_service(tmpdir): - dirnames = ["test_service", "also_test_service"] - service_dirs = [] - for d in dirnames: - service_dir = path.join(tmpdir, d) - makedirs(service_dir) - service_dirs.append(service_dir) - - testfile_path_1 = path.join(service_dirs[0], "testfile.txt") - with open(testfile_path_1, "w") as file: - file.write(TESTFILE_BODY) - - testfile_path_2 = path.join(service_dirs[1], "testfile2.txt") - with open(testfile_path_2, "w") as file: - file.write(TESTFILE_2_BODY) - - # we need this to not change get_folders() much - class TestDummyService(DummyService, folders=service_dirs): - pass - - service = TestDummyService() - # assert pickle.dumps(service) is not None - return service - - -@pytest.fixture() -def dummy_service( - tmpdir, raw_dummy_service, generic_userdata -) -> Generator[Service, None, None]: - service = raw_dummy_service - - # register our service - services.services.append(service) - - huey.immediate = True - assert huey.immediate is True - - assert get_service_by_id(service.get_id()) is not None - service.enable() - yield service - - # cleanup because apparently it matters wrt tasks - services.services.remove(service) def test_get_api_version(authorized_client): diff --git a/tests/test_graphql/test_api_backup.py b/tests/test_graphql/test_api_backup.py index 675c1b8..18d5d15 100644 --- a/tests/test_graphql/test_api_backup.py +++ b/tests/test_graphql/test_api_backup.py @@ -1,6 +1,5 @@ from os import path from tests.test_backup import backups -from tests.test_common import raw_dummy_service, dummy_service from tests.common import generate_backup_query diff --git a/tests/test_graphql/test_services.py b/tests/test_graphql/test_services.py index bd3e373..1c1374a 100644 --- a/tests/test_graphql/test_services.py +++ b/tests/test_graphql/test_services.py @@ -8,7 +8,6 @@ from selfprivacy_api.services import get_service_by_id from selfprivacy_api.services.service import Service, ServiceStatus from selfprivacy_api.services.test_service import DummyService -from tests.test_common import raw_dummy_service, dummy_service from tests.common import generate_service_query from tests.test_graphql.common import assert_empty, assert_ok, get_data diff --git a/tests/test_services.py b/tests/test_services.py index 3addf05..09784e9 100644 --- a/tests/test_services.py +++ b/tests/test_services.py @@ -15,8 +15,6 @@ from selfprivacy_api.services.generic_service_mover import FolderMoveNames from selfprivacy_api.services.test_service import DummyService from selfprivacy_api.services.service import Service, ServiceStatus, StoppedService -from tests.test_common import raw_dummy_service, dummy_service - def test_unimplemented_folders_raises(): with raises(NotImplementedError):