diff options
| author | Martin Fischer <martin@push-f.com> | 2025-06-22 18:31:46 +0200 |
|---|---|---|
| committer | Martin Fischer <martin@push-f.com> | 2025-06-28 07:10:54 +0200 |
| commit | 40f1b2eccfc27764e49b20bf712d4f5fa321fcac (patch) | |
| tree | 13045ac64b96d25744a89c0a85ab519f5597c68f /tests | |
| parent | 2b0edd86db9ccbbf2c946f74c840e9c0b87fa462 (diff) | |
fix: tests during Nix build
Fixes the following error when executing the tests during a Nix build:
Traceback (most recent call last):
File "/build/inkstitch/lib/elements/element.py", line 714, in handle_unexpected_exceptions
yield
File "/build/inkstitch/lib/elements/element.py", line 650, in embroider
stitch_groups = self._load_cached_stitch_groups(previous_stitch, next_element)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/build/inkstitch/lib/debug/debug.py", line 172, in decorated
result = func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/build/inkstitch/lib/elements/element.py", line 541, in _load_cached_stitch_groups
stitch_groups = get_stitch_plan_cache().get(cache_key)
^^^^^^^^^^^^^^^^^^^^^^^
File "/build/inkstitch/lib/utils/cache.py", line 31, in get_stitch_plan_cache
cache_dir = get_user_dir('cache')
^^^^^^^^^^^^^^^^^^^^^
File "/build/inkstitch/lib/utils/paths.py", line 50, in get_user_dir
os.makedirs(path)
File "<frozen os>", line 215, in makedirs
File "<frozen os>", line 215, in makedirs
File "<frozen os>", line 225, in makedirs
PermissionError: [Errno 13] Permission denied: '/homeless-shelter'
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/conftest.py | 8 | ||||
| -rw-r--r-- | tests/test_clone.py | 11 |
2 files changed, 8 insertions, 11 deletions
diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 00000000..c4e58897 --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,8 @@ +import pytest + +import lib.utils.settings + +@pytest.fixture(scope="session", autouse=True) +def disable_cache(): + # We disable the cache because Nix executes our tests with a non-writable HOME directory. + lib.utils.settings.global_settings._settings['cache_size'] = 0 diff --git a/tests/test_clone.py b/tests/test_clone.py index 4b4cf101..ba6784e1 100644 --- a/tests/test_clone.py +++ b/tests/test_clone.py @@ -9,7 +9,6 @@ from inkex.tester.svg import svg from lib.commands import add_commands from lib.elements import Clone, EmbroideryElement, FillStitch from lib.svg.tags import INKSCAPE_LABEL, INKSTITCH_ATTRIBS, SVG_RECT_TAG -from lib.utils import cache_module from .utils import element_count @@ -22,16 +21,6 @@ def element_fill_angle(element: EmbroideryElement) -> Optional[float]: class CloneElementTest(TestCase): - # Monkey-patch the cahce to forcibly disable it: We may need to refactor this out for tests. - def setUp(self) -> None: - from pytest import MonkeyPatch - self.monkeypatch = MonkeyPatch() - self.monkeypatch.setattr(cache_module, "is_cache_disabled", lambda: True) - - def tearDown(self) -> None: - self.monkeypatch.undo() - return super().tearDown() - def assertAngleAlmostEqual(self, a, b) -> None: # Take the mod 180 of the returned angles, because e.g. -130deg and 50deg produce fills along the same angle. # We have to use a precision of 4 decimal digits because of the precision of the matrices as they are stored in the svg trees |
