def main(): parser = argparse.ArgumentParser( description='Generate style variables from JSON5 color file.') parser.add_argument( '--generator', choices=['CSS', 'Views'], required=True, help='type of file to generate') parser.add_argument('--out-file', help='file to write output to') parser.add_argument('targets', nargs='+', help='source json5 color files') args = parser.parse_args() if args.generator == 'CSS': style_generator = CSSStyleGenerator() if args.generator == 'Views': style_generator = ViewsStyleGenerator() for t in args.targets: style_generator.AddJSONFileToModel(t) style_generator.out_file_path = args.out_file if args.out_file: with open(args.out_file, 'w') as f: f.write(style_generator.Render()) else: print(style_generator.Render()) return 0
class CSSStyleGeneratorTest(unittest.TestCase, BaseStyleGeneratorTest): def setUp(self): self.generator = CSSStyleGenerator() self.generator.AddJSONFileToModel('colors_test_palette.json5') self.generator.AddJSONFileToModel('colors_test.json5') self.expected_output_file = 'colors_test_expected.css' def testCustomDarkModeSelector(self): expected_file_name = 'colors_test_custom_dark_toggle_expected.css' self.generator.generator_options = { 'dark_mode_selector': 'html[dark]:not(body)' } self.assertEqualToFile(self.generator.Render(), expected_file_name) def testCustomDarkModeSelector(self): expected_file_name = 'colors_test_dark_only_expected.css' self.generator.generate_single_mode = Modes.DARK self.assertEqualToFile(self.generator.Render(), expected_file_name)
class CSSStyleGeneratorTest(unittest.TestCase): def setUp(self): self.generator = CSSStyleGenerator() def assertEqualToFile(self, value, filename): with open(filename) as f: self.assertEqual(value, f.read()) def testColorTestJSON(self): self.generator.AddJSONFileToModel('colors_test.json5') self.assertEqualToFile(self.generator.Render(), 'colors_test_expected.css')
class CSSStyleGeneratorTest(unittest.TestCase): def setUp(self): self.generator = CSSStyleGenerator() self.generator.AddJSONFileToModel('colors_test_palette.json5') self.generator.AddJSONFileToModel('colors_test.json5') def assertEqualToFile(self, value, filename): with open(filename) as f: contents = f.read() self.assertEqual( value, contents, '\n>>>>>\n%s<<<<<\n\ndoes not match\n\n>>>>>\n%s<<<<<' % (value, contents)) def testColorTestJSON(self): self.assertEqualToFile(self.generator.Render(), 'colors_test_expected.css') def testColorTestJSONDarkOnly(self): self.generator.generate_single_mode = Modes.DARK self.assertEqualToFile(self.generator.Render(), 'colors_test_dark_only_expected.css')
class CSSStyleGeneratorTest(unittest.TestCase, BaseStyleGeneratorTest): def setUp(self): self.generator = CSSStyleGenerator() self.generator.AddJSONFileToModel('colors_test_palette.json5') self.generator.AddJSONFileToModel('colors_test.json5') self.expected_output_file = 'colors_test_expected.css'