mirror of
https://github.com/imarkoff/Marble-shell-theme.git
synced 2025-09-26 05:06:37 -07:00
Covered Theme module with tests
- Extracted `ColorReplacementGenerator`; - Extracted `ColorConverterImpl`; - Added documentation to some classes; - `hex_to_rgba` now supports shorthand hex colors (#fff).
This commit is contained in:
71
tests/utils/theme/test_theme_temp_manager.py
Normal file
71
tests/utils/theme/test_theme_temp_manager.py
Normal file
@@ -0,0 +1,71 @@
|
||||
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)
|
Reference in New Issue
Block a user