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