def test_invalid_before_valid_writes_valid(self): kc = KanjiColorizer() kc.settings.characters = u'Лあ' kc.write_all() self.assertOpenedFileForWriting(u'あ.svg')
def test_writes_correct_two_characters(self): kc = KanjiColorizer() kc.settings.characters = u'漢字' kc.write_all() self.assertOpenedFileForWriting(u'漢.svg') self.assertOpenedFileForWriting(u'字.svg')
def test_invalid_character_doesnt_write_file(self): kc = KanjiColorizer() kc.settings.characters = u'Л' kc.write_all() self.assertDidntOpenFileForWriting(u'Л.svg')
def test_writes_only_one_character(self): kc = KanjiColorizer() kc.settings.characters = u'あ' kc.write_all() self.assertNumberFilesOpenedForWriting(1)
def test_writes_exactly_two_characters(self): kc = KanjiColorizer() kc.settings.characters = u'漢字' kc.write_all() self.assertNumberFilesOpenedForWriting(2)
def test_default_writes_correct_number(self): kc = KanjiColorizer() kc.write_all() self.assertNumberFilesOpenedForWriting(TOTAL_NUMBER_CHARACTERS)
def test_default_writes_some_characters(self): kc = KanjiColorizer() kc.write_all() self.assertOpenedFileForWriting(u'a.svg') self.assertOpenedFileForWriting(u'あ.svg')
def test_nonascii_sets_setting(self): kc = KanjiColorizer(u'--characters あ') self.assertEqual(kc.settings.characters, u'あ')
def test_multiple_characters_sets_setting(self): kc = KanjiColorizer(u'--characters 漢字') self.assertEqual(kc.settings.characters, u'漢字')
def test_ascii_sets_setting(self): kc = KanjiColorizer('--characters a') self.assertEqual(kc.settings.characters, u'a')
def test_invalid_after_valid_writes_valid(self): kc = KanjiColorizer() kc.settings.characters = 'あЛ' kc.write_all() self.assertOpenedFileForWriting('あ.svg')
def test_writes_a_character(self): kc = KanjiColorizer() kc.settings.characters = 'あ' kc.write_all() self.assertOpenedFileForWriting('あ.svg') self.assertNumberFilesOpenedForWriting(1)
#!/usr/bin/env python2 # -*- coding: UTF-8 -*- # kanjicolorizer.py is part of kanji-colorize which makes KanjiVG data # into colored stroke order diagrams # # Copyright 2012 Cayenne Boyer # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public # License along with this program. If not, see # <http://www.gnu.org/licenses/>. from kanjicolorizer.colorizer import KanjiColorizer if __name__ == "__main__": kc = KanjiColorizer() kc.read_cl_args() kc.write_all()
# END CONFIGURATION from anki.hooks import addHook from aqt import mw from aqt.utils import showInfo, askUser from aqt.qt import * from kanjicolorizer.colorizer import (KanjiVG, KanjiColorizer, InvalidCharacterError) import os from codecs import open import string srcField = 'Kanji' dstField = 'Diagram' kc = KanjiColorizer(config) def modelIsCorrectType(model): ''' Returns True if model has Japanese in the name and has both srcField and dstField; otherwise returns False ''' # Does the model name have Japanese in it? model_name = model['name'].lower() fields = mw.col.models.fieldNames(model) return ('japanese' in model_name and srcField in fields and dstField in fields) def characters_to_colorize(s):