From 8cf2507952dfbb6684c743919a543ffcb3fbb293 Mon Sep 17 00:00:00 2001 From: Jesse Bannon Date: Wed, 30 Nov 2022 10:13:15 -0800 Subject: [PATCH] working dir e2e fixture --- tests/conftest.py | 34 ++++--------------------- tests/e2e/conftest.py | 31 ++++++++++++++++++++++ tests/unit/prebuilt_presets/conftest.py | 6 ----- 3 files changed, 36 insertions(+), 35 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 4b94bbef..356e0d52 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,7 +1,6 @@ import contextlib import json import logging -import shutil import tempfile from typing import Any from typing import Callable @@ -10,12 +9,14 @@ from typing import List from unittest.mock import patch import pytest -from expected_download import _get_files_in_directory -from ytdl_sub.subscriptions.subscription_download import SubscriptionDownload from ytdl_sub.utils.logger import Logger -logger = Logger.get("test") + +@pytest.fixture +def working_directory() -> str: + with tempfile.TemporaryDirectory() as temp_dir: + yield temp_dir @pytest.fixture() @@ -24,31 +25,6 @@ def output_directory(): yield temp_dir -@pytest.fixture -def working_directory() -> str: - """ - Any time the working directory is used, ensure no files remain on cleaning it up - """ - with tempfile.TemporaryDirectory() as temp_dir: - - def _assert_working_directory_empty(self, is_error: bool): - files = [str(file_path) for file_path in _get_files_in_directory(temp_dir)] - num_files = len(files) - shutil.rmtree(temp_dir) - - if not is_error: - if num_files > 0: - logger.error("left-over files in working dir:\n%s", "\n".join(files)) - assert num_files == 0 - - with patch.object( - SubscriptionDownload, - "_delete_working_directory", - new=_assert_working_directory_empty, - ): - yield temp_dir - - @contextlib.contextmanager def assert_debug_log(logger: logging.Logger, expected_message: str): """ diff --git a/tests/e2e/conftest.py b/tests/e2e/conftest.py index 3604f775..de447ec1 100644 --- a/tests/e2e/conftest.py +++ b/tests/e2e/conftest.py @@ -1,4 +1,5 @@ import json +import shutil import sys import tempfile from typing import List @@ -6,13 +7,43 @@ from typing import Tuple from unittest.mock import patch import pytest +from expected_download import _get_files_in_directory from ytdl_sub.cli.main import main from ytdl_sub.config.config_file import ConfigFile from ytdl_sub.subscriptions.subscription import Subscription +from ytdl_sub.subscriptions.subscription_download import SubscriptionDownload from ytdl_sub.utils.file_handler import FileHandlerTransactionLog +from ytdl_sub.utils.logger import Logger from ytdl_sub.utils.yaml import load_yaml +logger = Logger.get("test") + + +@pytest.fixture +def working_directory() -> str: + """ + Any time the working directory is used, ensure no files remain on cleaning it up + """ + with tempfile.TemporaryDirectory() as temp_dir: + + def _assert_working_directory_empty(self, is_error: bool): + files = [str(file_path) for file_path in _get_files_in_directory(temp_dir)] + num_files = len(files) + shutil.rmtree(temp_dir) + + if not is_error: + if num_files > 0: + logger.error("left-over files in working dir:\n%s", "\n".join(files)) + assert num_files == 0 + + with patch.object( + SubscriptionDownload, + "_delete_working_directory", + new=_assert_working_directory_empty, + ): + yield temp_dir + @pytest.fixture() def music_video_config_path(): diff --git a/tests/unit/prebuilt_presets/conftest.py b/tests/unit/prebuilt_presets/conftest.py index 7822681c..7ce3d4e8 100644 --- a/tests/unit/prebuilt_presets/conftest.py +++ b/tests/unit/prebuilt_presets/conftest.py @@ -24,12 +24,6 @@ from ytdl_sub.entries.variables.kwargs import UPLOAD_DATE from ytdl_sub.entries.variables.kwargs import WEBPAGE_URL -@pytest.fixture -def working_directory() -> str: - with tempfile.TemporaryDirectory() as temp_dir: - yield temp_dir - - @pytest.fixture def subscription_name(working_directory) -> str: name = "subscription_test"