Coverage for app/venv/lib/python3.14/site-packages/weblate/utils/unittest.py: 0%
20 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 07:15 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 07:15 +0000
1# Copyright © Michal Čihař <michal@weblate.org>
2#
3# SPDX-License-Identifier: GPL-3.0-or-later
5import os
6import tempfile
8from django.test.utils import override_settings
10from weblate.utils.files import remove_tree
13# Lowercase name to be consistent with Django
14class tempdir_setting(override_settings): # noqa: N801
15 def __init__(self, setting) -> None:
16 kwargs = {setting: None}
17 super().__init__(**kwargs)
18 self._tempdir: str | None = None
19 self._setting = setting
21 def enable(self) -> None:
22 self._tempdir = tempfile.mkdtemp()
23 os.chmod(self._tempdir, 0o755) # noqa: S103, nosec
24 self.options[self._setting] = self._tempdir
25 super().enable()
27 def disable(self) -> None:
28 super().disable()
29 if self._tempdir is not None:
30 remove_tree(self._tempdir)
31 self._tempdir = None