mirror of
https://github.com/imarkoff/Marble-shell-theme.git
synced 2025-09-19 17:57:55 -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:
78
tests/utils/test_style_manager.py
Normal file
78
tests/utils/test_style_manager.py
Normal file
@@ -0,0 +1,78 @@
|
||||
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)
|
Reference in New Issue
Block a user