Skip to content

Commit 43da71f

Browse files
committed
Improve test reliability
1 parent 1dcd82e commit 43da71f

File tree

1 file changed

+30
-11
lines changed

1 file changed

+30
-11
lines changed

tests/test_constants.py

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"""
1212

1313
import unittest
14-
from os import environ, unsetenv
14+
from os import environ, getenv, unsetenv
1515
from os.path import expanduser, expandvars
1616
from pathlib import Path
1717
from sys import platform as opersys
@@ -27,6 +27,11 @@
2727
class TestConstants(unittest.TestCase):
2828
"""Test package static variables."""
2929

30+
def setUp(self) -> None:
31+
if "QDT_QGIS_EXE_PATH" in environ or getenv("QDT_QGIS_EXE_PATH"):
32+
unsetenv("QDT_QGIS_EXE_PATH")
33+
environ.pop("QDT_QGIS_EXE_PATH")
34+
3035
def test_constants(self):
3136
"""Test types."""
3237
self.assertIsInstance(constants.OS_CONFIG, dict)
@@ -60,43 +65,57 @@ def test_get_qdt_working_folder(self):
6065
)
6166

6267
# using environment variable
63-
# environ["QDT_LOCAL_WORK_DIR"] = "~/.cache/qdt/unit-tests-env-var/"
64-
# self.assertEqual(
65-
# constants.get_qdt_working_directory(),
66-
# Path(Path.home(), ".cache/qdt/unit-tests-env-var/"),
67-
# )
68-
# unsetenv("QDT_LOCAL_WORK_DIR")
68+
environ["QDT_LOCAL_WORK_DIR"] = "~/.cache/qdt/unit-tests-env-var/"
69+
self.assertEqual(
70+
constants.get_qdt_working_directory(),
71+
Path(Path.home(), ".cache/qdt/unit-tests-env-var/"),
72+
)
73+
unsetenv("QDT_LOCAL_WORK_DIR")
6974

7075
def test_get_qgis_bin_path(self):
7176
"""Test get GIS exe path helper property"""
7277
os_config: constants.OS_CONFIG = constants.OS_CONFIG.get(opersys)
73-
unsetenv("QDT_QGIS_EXE_PATH")
74-
7578
# default value
7679
self.assertEqual(os_config.get_qgis_bin_path, os_config.qgis_bin_exe_path)
7780

78-
# with environment var set as str
81+
def test_get_qgis_bin_path_with_env_var_str(self):
82+
"""Test with environment var set as str"""
83+
if "QDT_QGIS_EXE_PATH" in environ:
84+
environ.pop("QDT_QGIS_EXE_PATH")
7985
environ["QDT_QGIS_EXE_PATH"] = "/usr/bin/toto"
86+
os_config: constants.OS_CONFIG = constants.OS_CONFIG.get(opersys)
8087
self.assertEqual(os_config.get_qgis_bin_path, Path("/usr/bin/toto"))
88+
89+
environ.pop("QDT_QGIS_EXE_PATH")
8190
environ["QDT_QGIS_EXE_PATH"] = "~/qgis-ltr-bin.exe"
91+
os_config: constants.OS_CONFIG = constants.OS_CONFIG.get(opersys)
8292
self.assertEqual(
8393
os_config.get_qgis_bin_path,
8494
Path(expanduser("~/qgis-ltr-bin.exe")).resolve(),
8595
)
8696

97+
environ.pop("QDT_QGIS_EXE_PATH")
98+
99+
def test_get_qgis_bin_path_with_env_var_dict(self):
100+
"""Test get GIS exe path helper property"""
101+
if "QDT_QGIS_EXE_PATH" in environ:
102+
environ.pop("QDT_QGIS_EXE_PATH")
87103
# with environment var set as dict
88104
d_test = {
89105
"linux": "/usr/bin/qgis",
90106
"darwin": "/usr/bin/qgis",
91107
"win32": "%PROGRAMFILES%/QGIS/3_22/bin/qgis-ltr-bin.exe",
92108
}
93109
environ["QDT_QGIS_EXE_PATH"] = str(d_test)
110+
111+
os_config: constants.OS_CONFIG = constants.OS_CONFIG.get(opersys)
112+
94113
self.assertEqual(
95114
os_config.get_qgis_bin_path,
96115
Path(expandvars(expanduser(d_test.get(opersys)))),
97116
)
98117

99-
unsetenv("QDT_QGIS_EXE_PATH")
118+
environ.pop("QDT_QGIS_EXE_PATH")
100119

101120

102121
# ############################################################################

0 commit comments

Comments
 (0)