mirror of
https://github.com/imarkoff/Marble-shell-theme.git
synced 2025-09-17 16:57:56 -07:00
- Extracted `ColorReplacementGenerator`; - Extracted `ColorConverterImpl`; - Added documentation to some classes; - `hex_to_rgba` now supports shorthand hex colors (#fff).
71 lines
2.8 KiB
Python
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) |