diff options
| -rwxr-xr-x | pywal/export_colors.py | 21 | ||||
| -rw-r--r-- | pywal/templates/colors | 16 | ||||
| -rwxr-xr-x | tests/test_export_colors.py | 17 | ||||
| -rw-r--r-- | tests/test_files/test_template | 2 | ||||
| -rwxr-xr-x | tests/test_format_colors.py | 47 |
5 files changed, 41 insertions, 62 deletions
diff --git a/pywal/export_colors.py b/pywal/export_colors.py index 4282124..b3c4025 100755 --- a/pywal/export_colors.py +++ b/pywal/export_colors.py @@ -8,24 +8,24 @@ from pywal.settings import CACHE_DIR, TEMPLATE_DIR from pywal import util -def template(colors, input_file): +def template(colors, input_file, output_dir): """Read template file, substitute markers and save the file elsewhere.""" - template_file = pathlib.Path(TEMPLATE_DIR).joinpath(input_file) - export_file = pathlib.Path(CACHE_DIR).joinpath(input_file) + # Get the template name. + template_file = os.path.basename(input_file) # Import the template. - with open(template_file) as file: + with open(input_file) as file: template_data = file.readlines() # Format the markers. template_data = "".join(template_data).format(**colors) # Export the template. - with open(export_file, "w") as file: - file.write(template_data) + output_file = output_dir / template_file + util.save_file(template_data, output_file) - print(f"export: Exported {input_file}.") + print(f"export: Exported {template_file}.") def export_all_templates(colors): @@ -43,10 +43,11 @@ def export_all_templates(colors): colors_rgb = {k: util.hex_to_rgb(v) for k, v in colors["colors"].items()} # pylint: disable=W0106 - [template(colors["colors"], file.name) + [template(colors["colors"], file.path, CACHE_DIR) for file in os.scandir(TEMPLATE_DIR) - if file not in exclude] + if file.name not in exclude] # Call 'putty' manually since it needs RGB # colors. - template(colors_rgb, "colors-putty.reg") + putty_file = TEMPLATE_DIR / pathlib.Path("colors-putty.reg") + template(colors_rgb, putty_file, CACHE_DIR) diff --git a/pywal/templates/colors b/pywal/templates/colors new file mode 100644 index 0000000..228f4c8 --- /dev/null +++ b/pywal/templates/colors @@ -0,0 +1,16 @@ +{color0} +{color1} +{color2} +{color3} +{color4} +{color5} +{color6} +{color7} +{color8} +{color9} +{color10} +{color11} +{color12} +{color13} +{color14} +{color15} diff --git a/tests/test_export_colors.py b/tests/test_export_colors.py index 7cee594..90af273 100755 --- a/tests/test_export_colors.py +++ b/tests/test_export_colors.py @@ -13,11 +13,18 @@ COLORS = util.read_file_json("tests/test_files/test_file.json") class TestExportColors(unittest.TestCase): """Test the export_colors functions.""" - def test_save_colors(self): - """> Export colors to a file.""" - tmp_file = pathlib.Path("/tmp/test_file.json") - export_colors.save_colors(COLORS, tmp_file, "plain colors") - result = tmp_file.is_file() + def test_template(self): + """> Test substitutions in template file.""" + # Merge both dicts so we can access their + # values simpler. + COLORS["colors"].update(COLORS["special"]) + + # Dirs to use. + tmp_dir = pathlib.Path("/tmp") + test_template = pathlib.Path("tests/test_files/test_template") + export_colors.template(COLORS["colors"], test_template, tmp_dir) + + result = pathlib.Path("/tmp/test_template").is_file() self.assertTrue(result) diff --git a/tests/test_files/test_template b/tests/test_files/test_template new file mode 100644 index 0000000..167e17b --- /dev/null +++ b/tests/test_files/test_template @@ -0,0 +1,2 @@ +test {color0} +test {background} diff --git a/tests/test_format_colors.py b/tests/test_format_colors.py deleted file mode 100755 index 732f67b..0000000 --- a/tests/test_format_colors.py +++ /dev/null @@ -1,47 +0,0 @@ -"""Test format functions.""" -import unittest - -from pywal import format_colors -from pywal import util - - -# Import colors. -COLORS = util.read_file_json("tests/test_files/test_file.json") - - -class TestFormatColors(unittest.TestCase): - """Test the format_colors functions.""" - - def test_plain(self): - """> Convert colors to plain.""" - result = format_colors.plain(COLORS) - self.assertEqual(result[0], "#3A5130\n") - - def test_shell(self): - """> Convert colors to shell variables.""" - result = format_colors.shell(COLORS) - self.assertEqual(result[0], "color0='#3A5130'\n") - - def test_css(self): - """> Convert colors to css variables.""" - result = format_colors.css(COLORS) - self.assertEqual(result[1], "\t--color0: #3A5130;\n") - - def test_scss(self): - """> Convert colors to scss variables.""" - result = format_colors.scss(COLORS) - self.assertEqual(result[0], "$color0: #3A5130;\n") - - def test_putty(self): - """> Convert colors to putty theme.""" - result = format_colors.putty(COLORS) - self.assertEqual(result[2], "\"colour0\"=\"58,81,48\"\n") - - def test_xrdb(self): - """> Convert colors to putty theme.""" - result = format_colors.xrdb(COLORS) - self.assertEqual(result[6], "*.color0: #3A5130\n*color0: #3A5130\n") - - -if __name__ == "__main__": - unittest.main() |
