Files
Marble-shell-theme/tests/utils/test_style_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

78 lines
2.8 KiB
Python

import os
import shutil
import unittest
from scripts import config
from scripts.utils.style_manager import StyleManager
from .._helpers import create_dummy_file
class StyleManagerTestCase(unittest.TestCase):
def setUp(self):
self.temp_folder = os.path.join(config.temp_tests_folder, "style_manager")
os.makedirs(self.temp_folder, exist_ok=True)
self.output_file = os.path.join(self.temp_folder, "output.css")
self.manager = StyleManager(output_file=self.output_file)
def tearDown(self):
shutil.rmtree(self.temp_folder, ignore_errors=True)
def test_append_content(self):
start_css = "body { background-color: blue; }"
create_dummy_file(self.output_file, start_css)
end_css = "h1 { color: red; }"
self.manager.append_content(end_css)
with open(self.output_file, 'r') as f:
content = f.read()
split_content = content.splitlines()
assert split_content[0] == start_css
assert split_content[1] == end_css
os.remove(self.output_file)
def test_append_does_not_create_file(self):
end_css = "h1 { color: red; }"
with self.assertRaises(FileNotFoundError):
self.manager.append_content(end_css)
def test_prepend_content(self):
start_css = "body { background-color: blue; }"
create_dummy_file(self.output_file, start_css)
prepend_css = "h1 { color: red; }"
self.manager.prepend_content(prepend_css)
with open(self.output_file, 'r') as f:
content = f.read()
split_content = content.splitlines()
assert split_content[0] == prepend_css
assert split_content[1] == start_css
os.remove(self.output_file)
def test_prepend_does_not_create_file(self):
prepend_css = "h1 { color: red; }"
with self.assertRaises(FileNotFoundError):
self.manager.prepend_content(prepend_css)
def test_generate_combined_styles(self):
source_folder = os.path.join(config.temp_tests_folder, "style_manager_source")
source_css_folder = os.path.join(source_folder, ".css")
first_file = os.path.join(source_css_folder, "file1.css")
second_file = os.path.join(source_css_folder, "file2.css")
first_css = "body { background-color: blue; }"
second_css = "h1 { color: red; }"
create_dummy_file(first_file, first_css)
create_dummy_file(second_file, second_css)
self.manager.generate_combined_styles(source_folder, self.temp_folder)
with open(self.output_file, 'r') as f:
content = f.read()
split_content = content.splitlines()
assert first_css in split_content
assert second_css in split_content
os.remove(self.output_file)
shutil.rmtree(source_folder, ignore_errors=True)