import logging import os import shutil import tempfile from pathlib import Path from .common import get_cache_dir, set_cache_dir class BaseTestClass: """ A custom testing class that disables some of the more verbose logging and that creates and destroys a temp directory as a test fixture. """ PROJECT_ROOT = (Path(__file__).parent / "..").resolve() MODULE_ROOT = PROJECT_ROOT / "cached_path" TOOLS_ROOT = MODULE_ROOT / "tools" TESTS_ROOT = PROJECT_ROOT / "tests" FIXTURES_ROOT = PROJECT_ROOT / "test_fixtures" def setup_method(self): logging.basicConfig( format="%(asctime)s - %(levelname)s - %(name)s - %(message)s", level=logging.DEBUG ) # Disabling some of the more verbose logging statements that typically aren't very helpful # in tests. logging.getLogger("urllib3.connectionpool").disabled = True self.TEST_DIR = Path(tempfile.mkdtemp(prefix="cached_path_tests")) os.makedirs(self.TEST_DIR, exist_ok=True) self._initial_cache_dir = get_cache_dir() set_cache_dir(self.TEST_DIR) def teardown_method(self): set_cache_dir(self._initial_cache_dir) shutil.rmtree(self.TEST_DIR)