mirror of
https://github.com/imarkoff/Marble-shell-theme.git
synced 2025-09-21 18: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:
76
tests/utils/theme/test_gnome_shell_theme_builder.py
Normal file
76
tests/utils/theme/test_gnome_shell_theme_builder.py
Normal file
@@ -0,0 +1,76 @@
|
||||
import unittest
|
||||
from unittest.mock import Mock
|
||||
import os
|
||||
|
||||
from scripts.utils.theme.gnome_shell_theme_builder import GnomeShellThemeBuilder
|
||||
|
||||
|
||||
class GnomeShellThemeBuilderTestCase(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.colors_provider = Mock()
|
||||
self.builder = GnomeShellThemeBuilder(self.colors_provider)
|
||||
|
||||
def test_builder_method_chaining_works_correctly(self):
|
||||
result = (self.builder.with_theme_name("test-theme")
|
||||
.with_mode("dark")
|
||||
.filled()
|
||||
.with_temp_folder("/tmp/test"))
|
||||
|
||||
self.assertIs(result, self.builder)
|
||||
self.assertEqual("test-theme", self.builder.theme_name)
|
||||
self.assertEqual("dark", self.builder.mode)
|
||||
self.assertTrue(self.builder.is_filled)
|
||||
self.assertEqual("/tmp/test", self.builder._base_temp_folder)
|
||||
|
||||
def test_paths_update_when_base_folder_changes(self):
|
||||
self.builder.with_temp_folder("/custom/temp")
|
||||
|
||||
expected_temp_folder = os.path.join("/custom/temp", self.builder.theme_name)
|
||||
expected_main_styles = os.path.join(expected_temp_folder, f"{self.builder.theme_name}.css")
|
||||
|
||||
self.assertEqual(expected_temp_folder, self.builder.temp_folder)
|
||||
self.assertEqual(expected_main_styles, self.builder.main_styles)
|
||||
|
||||
def test_paths_update_when_theme_name_changes(self):
|
||||
original_temp_folder = self.builder.temp_folder
|
||||
original_main_styles = self.builder.main_styles
|
||||
|
||||
self.builder.with_theme_name("custom-theme")
|
||||
|
||||
self.assertNotEqual(original_temp_folder, self.builder.temp_folder)
|
||||
self.assertNotEqual(original_main_styles, self.builder.main_styles)
|
||||
self.assertEqual(os.path.join(self.builder._base_temp_folder, "custom-theme"), self.builder.temp_folder)
|
||||
self.assertEqual(os.path.join(self.builder.temp_folder, "custom-theme.css"), self.builder.main_styles)
|
||||
|
||||
def test_default_values_are_set_properly(self):
|
||||
builder = GnomeShellThemeBuilder(self.colors_provider)
|
||||
|
||||
self.assertEqual("gnome-shell", builder.theme_name)
|
||||
self.assertIsNone(builder.mode)
|
||||
self.assertFalse(builder.is_filled)
|
||||
self.assertIsNone(builder.preparation)
|
||||
self.assertIsNone(builder.installer)
|
||||
|
||||
def test_build_correctly_resolves_dependencies(self):
|
||||
self.builder.build()
|
||||
|
||||
self.assertIsNotNone(self.builder.preparation)
|
||||
self.assertIsNotNone(self.builder.installer)
|
||||
|
||||
def test_build_correctly_creates_theme(self):
|
||||
self.builder.with_mode("light").filled()
|
||||
|
||||
theme = self.builder.build()
|
||||
|
||||
self.assertEqual(theme._preparation, self.builder.preparation)
|
||||
self.assertEqual(theme._installer, self.builder.installer)
|
||||
self.assertTrue(theme.is_filled)
|
||||
self.assertTrue(len(theme.modes) == 1)
|
||||
self.assertEqual(theme.modes[0], "light")
|
||||
|
||||
def test_filled_method_with_parameter(self):
|
||||
self.builder.filled(False)
|
||||
self.assertFalse(self.builder.is_filled)
|
||||
|
||||
self.builder.filled(True)
|
||||
self.assertTrue(self.builder.is_filled)
|
Reference in New Issue
Block a user