Files
Marble-shell-theme/tests/utils/theme/test_theme_temp_manager.py
Vladyslav Hroshev abfe1f5962 Covered Theme module with tests
- Extracted `ColorReplacementGenerator`;
- Extracted `ColorConverterImpl`;
- Added documentation to some classes;
- `hex_to_rgba` now supports shorthand hex colors (#fff).
2025-04-11 22:53:30 +03:00

71 lines
2.8 KiB
Python

import os.path
import shutil
import unittest
from scripts import config
from scripts.utils.theme.theme_temp_manager import ThemeTempManager
from ..._helpers import create_dummy_file
class ThemeTempManagerTestCase(unittest.TestCase):
def setUp(self):
self.source_folder = os.path.join(config.temp_tests_folder, "theme_temp_manager_source")
self.temp_folder = os.path.join(config.temp_tests_folder, "theme_temp_manager")
self.manager = ThemeTempManager(temp_folder=self.temp_folder)
def tearDown(self):
shutil.rmtree(self.temp_folder, ignore_errors=True)
shutil.rmtree(self.source_folder, ignore_errors=True)
@staticmethod
def _verify_file_copied(source, destination):
assert os.path.exists(destination)
assert os.path.getsize(destination) == os.path.getsize(source)
assert open(destination).read() == open(source).read()
def test_file_copies_correctly_to_temp(self):
test_file_name = "test_file.txt"
test_file_location = os.path.join(self.source_folder, test_file_name)
create_dummy_file(test_file_location)
self.manager.copy_to_temp(test_file_location)
final_file_location = os.path.join(self.temp_folder, test_file_name)
self._verify_file_copied(test_file_location, final_file_location)
os.remove(final_file_location)
def test_directory_content_copies_correctly_to_temp(self):
test_dir_name = "test_dir"
test_dir_location = os.path.join(self.source_folder, test_dir_name)
os.makedirs(test_dir_location, exist_ok=True)
test_file_name = "test_file.txt"
test_file_location = os.path.join(test_dir_location, test_file_name)
create_dummy_file(test_file_location)
self.manager.copy_to_temp(test_dir_location)
final_file_location = os.path.join(self.temp_folder, test_file_name)
self._verify_file_copied(test_file_location, final_file_location)
os.remove(final_file_location)
def test_cleanup_removes_temp_folders(self):
css_folder = os.path.join(self.temp_folder, ".css")
versions_folder = os.path.join(self.temp_folder, ".versions")
os.makedirs(css_folder, exist_ok=True)
os.makedirs(versions_folder, exist_ok=True)
self.manager.cleanup()
assert not os.path.exists(css_folder)
assert not os.path.exists(versions_folder)
def test_cleanup_non_existent_folders_do_not_raise_error(self):
css_folder = os.path.join(self.temp_folder, ".css")
versions_folder = os.path.join(self.temp_folder, ".versions")
self.manager.cleanup()
# Check that no error is raised and the method completes successfully
assert not os.path.exists(css_folder)
assert not os.path.exists(versions_folder)