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

1# Copyright © Michal Čihař <michal@weblate.org> 

2# 

3# SPDX-License-Identifier: GPL-3.0-or-later 

4 

5import os 

6import tempfile 

7 

8from django.test.utils import override_settings 

9 

10from weblate.utils.files import remove_tree 

11 

12 

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 

20 

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() 

26 

27 def disable(self) -> None: 

28 super().disable() 

29 if self._tempdir is not None: 

30 remove_tree(self._tempdir) 

31 self._tempdir = None