Ejemplo n.º 1
0
 def test_returns_all_not_found_fonts(self):
     loader = FontLoader(None, True)
     data = {
         StyleInfo('Jorvik', 0, False): UsageData(),
         StyleInfo('Random font', 0, False): UsageData()
     }
     found, not_found = loader.get_fonts_for_list(data)
     self.assertEqual(2, len(not_found))
Ejemplo n.º 2
0
 def test_returns_all_found_fonts(self):
     loader = FontLoader([get_file_in_test_directory('')], True)
     data = {
         StyleInfo('Jorvik Informal V2', 0, False): UsageData(),
         StyleInfo('Random font', 0, False): UsageData()
     }
     found, not_found = loader.get_fonts_for_list(data)
     self.assertEqual(1, len(found))
     self.assertIn('Jorvik Informal V2', list(found.values())[0].names)
Ejemplo n.º 3
0
 def test_does_not_add_same_font_twice(self):
     loader = FontLoader(
         [get_file_in_test_directory(''),
          get_file_in_test_directory('')], True)
     data = {
         StyleInfo('Jorvik', 0, False): UsageData(),
         StyleInfo('Jorvik informal', 0, False): UsageData()
     }
     found, not_found = loader.get_fonts_for_list(data)
     self.assertEqual(1, len(found))
Ejemplo n.º 4
0
 def test_returns_only_appropriate_font(self):
     loader = FontLoader(None, True)
     loader.fonts.append(
         FontInfo(['Arial'], False, False, FontWeight.FW_NORMAL, 'random',
                  '1'))
     loader.fonts.append(
         FontInfo(['Arial Black'], False, False, FontWeight.FW_NORMAL,
                  'random', '2'))
     data = {StyleInfo('Arial', 0, False): UsageData()}
     found, not_found = loader.get_fonts_for_list(data)
     self.assertEqual(1, len(found))
Ejemplo n.º 5
0
    def test_correctly_finds_yanone_kaffeesatz_bold(self):
        logging.basicConfig(level=logging.DEBUG)

        f = TTFFont(get_file_in_test_directory('YanoneKaffeesatz-Bold.otf'))
        print(f.get_info().weight)
        f.print_headers()

        stat = AssParser.get_fonts_statistics(
            get_file_in_test_directory('3.ass'), True, True)
        loader = FontLoader([get_file_in_test_directory('')])
        found, not_found = loader.get_fonts_for_list(stat)
        self.assertFalse(not_found)

        logging.disable(logging.DEBUG)
Ejemplo n.º 6
0
 def test_finds_all_required_fonts(self):
     loader = FontLoader(None, True)
     loader.fonts.append(
         FontInfo(['Arial'], False, False, FontWeight.FW_NORMAL, 'random',
                  '1'))
     loader.fonts.append(
         FontInfo(['Arial Black'], False, False, FontWeight.FW_NORMAL,
                  'random', '2'))
     data = {
         StyleInfo('Arial', 0, False): UsageData(),
         StyleInfo('Arial Black', 0, False): UsageData()
     }
     found, not_found = loader.get_fonts_for_list(data)
     self.assertEqual(2, len(found))
Ejemplo n.º 7
0
def process(args):
    config = get_config(args)

    fonts = AssParser.get_fonts_statistics(os.path.abspath(config['script']),
                                           config['exclude_unused_fonts'],
                                           config['exclude_comments'])
    if config['rebuild_cache']:
        FontLoader.discard_cache()

    collector = FontLoader(config['font_dirs'], config['include_system_fonts'])
    found, not_found, paths = collector.get_fonts_for_list(fonts)

    if len(not_found) != 0:
        print(file=sys.stderr, *not_found, sep="\n")
        sys.exit(1)
    elif len(found) != 0:
        print(*paths, sep="\n")
Ejemplo n.º 8
0
 def test_loads_at_least_some_system_fonts(self):
     loader = FontLoader(None, True)
     self.assertTrue(len(loader.fonts) > 0)
Ejemplo n.º 9
0
 def test_performs_case_insensitive_search(self):
     loader = FontLoader([get_file_in_test_directory('')], True)
     data = {StyleInfo('JoRvIk INFormAl v2', 0, False): UsageData()}
     found, not_found = loader.get_fonts_for_list(data)
     self.assertEqual(1, len(found))