-
Notifications
You must be signed in to change notification settings - Fork 646
Expand file tree
/
Copy pathtest_database_defaults.py
More file actions
56 lines (41 loc) · 2.1 KB
/
Copy pathtest_database_defaults.py
File metadata and controls
56 lines (41 loc) · 2.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import importlib
import platform
from pathlib import Path
import pytest
@pytest.fixture
def patch_env(mocker):
def _patch_env(xdg_cache_home=None):
patched_env = {}
if platform.system() == "Windows":
# On Windows, Path.home() internally depends on environment variables:
# - HOMEDRIVE and HOMEPATH (used together to construct the home path or just HOMEPATH)
# - or USERPROFILE (used directly if present)
# If these are missing and os.environ is cleared (e.g. in tests), Path.home() will raise:
# RuntimeError: Could not determine home directory.
patched_env["HOMEDRIVE"] = "C:"
patched_env["HOMEPATH"] = "\\Users\\testuser"
if xdg_cache_home:
patched_env["XDG_CACHE_HOME"] = str(xdg_cache_home)
mocker.patch.dict("os.environ", patched_env, clear=True)
return _patch_env
def test_cache_paths_with_xdg(patch_env, tmp_path):
patch_env(xdg_cache_home=tmp_path)
import cve_bin_tool.database_defaults as db_defaults
importlib.reload(db_defaults)
assert db_defaults.CACHE_DIR == tmp_path
assert db_defaults.DISK_LOCATION_DEFAULT == tmp_path / "cve-bin-tool"
assert db_defaults.DISK_LOCATION_BACKUP == tmp_path / "cve-bin-tool-backup"
assert db_defaults.OLD_CACHE_DIR == Path.home() / ".cache" / "cvedb"
assert db_defaults.DBNAME == "cve.db"
assert db_defaults.NVD_FILENAME_TEMPLATE.format("2024") == "nvdcve-1.1-2024.json.gz"
def test_cache_paths_fallback_to_home(patch_env):
patch_env() # No XDG_CACHE_HOME
import cve_bin_tool.database_defaults as db_defaults
importlib.reload(db_defaults)
expected_cache = Path.home() / ".cache"
assert db_defaults.CACHE_DIR == expected_cache
assert db_defaults.DISK_LOCATION_DEFAULT == expected_cache / "cve-bin-tool"
assert db_defaults.DISK_LOCATION_BACKUP == expected_cache / "cve-bin-tool-backup"
assert db_defaults.OLD_CACHE_DIR == Path.home() / ".cache" / "cvedb"
assert db_defaults.DBNAME == "cve.db"
assert db_defaults.NVD_FILENAME_TEMPLATE.format("2023") == "nvdcve-1.1-2023.json.gz"