def testLoadInvalid (self): dirlist = [u"../plugins/testinvalid", # Нет такой директории u"../plugins/testinvalid1", u"../plugins/testinvalid2", u"../plugins/testinvalid3", u"../plugins/testinvalid4", u"../plugins/testinvalid5", u"../plugins/testinvalid6", u"../plugins/testinvalid7", u"../plugins/testempty1", u"../plugins/testempty2", u"../plugins/testempty2", # Ссылка на плагин testempty2 повторяется еще раз u"../plugins/testwikicommand"] loader = PluginsLoader(Application) loader.enableOutput = False loader.load (dirlist) self.assertEqual (len (loader), 3) self.assertEqual (loader[u"TestEmpty1"].name, u"TestEmpty1") self.assertEqual (loader[u"TestEmpty1"].version, u"0.1") self.assertEqual (loader[u"TestEmpty1"].description, u"This plugin is empty") self.assertEqual (loader[u"TestEmpty2"].name, u"TestEmpty2") self.assertEqual (loader[u"TestEmpty2"].version, u"0.1") self.assertEqual (loader[u"TestEmpty2"].description, u"This plugin is empty") self.assertEqual (loader[u"TestWikiCommand"].name, u"TestWikiCommand") self.assertEqual (loader[u"TestWikiCommand"].version, u"0.1")
def testDisabledPlugins(self): # Добавим плагин TestEmpty1 в черный список self.config.disabledPlugins.value = [u"TestEmpty1"] dirlist = [u"../test/plugins/testempty1", u"../test/plugins/testempty2", u"../test/plugins/testwikicommand"] loader = PluginsLoader(Application) loader.load(dirlist) self.assertEqual(len(loader), 2) self.assertEqual(loader[u"TestEmpty2"].name, u"TestEmpty2") self.assertEqual(loader[u"TestEmpty2"].version, u"0.1") self.assertEqual(loader[u"TestEmpty2"].description, u"This plugin is empty") self.assertEqual(loader[u"TestWikiCommand"].name, u"TestWikiCommand") self.assertEqual(loader[u"TestWikiCommand"].version, u"0.1") self.assertEqual(len(loader.disabledPlugins), 1) self.assertEqual(loader.disabledPlugins[u"TestEmpty1"].name, u"TestEmpty1") self.assertEqual( loader.disabledPlugins[u"TestEmpty1"].version, u"0.1" ) self.assertEqual(loader.disabledPlugins[u"TestEmpty1"].description, u"This plugin is empty")
def testReload(self): tmp_plugin_dir = "../test/plugins/testreload" # init test shutil.copyfile('../test/plugins/testreload/testreload/testreload.v1', '../test/plugins/testreload/testreload/plugin.py') dirlist = [tmp_plugin_dir] loader = PluginsLoader(self.application) loader.load(dirlist) # pre-observation self.assertEqual(len(loader), 1) self.assertEqual(loader["TestReload"].name, "TestReload") self.assertEqual(loader["TestReload"].version, "0.1") # replace plugin file to ver 0.2 os.remove('../test/plugins/testreload/testreload/plugin.py') sleep(1) shutil.copyfile('../test/plugins/testreload/testreload/testreload.v2', '../test/plugins/testreload/testreload/plugin.py') # observation loader.reload("TestReload") self.assertEqual(len(loader), 1) self.assertEqual(loader["TestReload"].name, "TestReload") self.assertEqual(loader["TestReload"].version, "0.2") # restore os.remove('../test/plugins/testreload/testreload/plugin.py')
def testLoadInvalid(self): dirlist = [ u"../plugins/testinvalid", # Нет такой директории u"../plugins/testinvalid1", u"../plugins/testinvalid2", u"../plugins/testinvalid3", u"../plugins/testinvalid4", u"../plugins/testinvalid5", u"../plugins/testinvalid6", u"../plugins/testinvalid7", u"../plugins/testempty1", u"../plugins/testempty2", u"../plugins/testempty2", # Ссылка на плагин testempty2 повторяется еще раз u"../plugins/testwikicommand" ] loader = PluginsLoader(Application) loader.enableOutput = False loader.load(dirlist) self.assertEqual(len(loader), 3) self.assertEqual(loader[u"TestEmpty1"].name, u"TestEmpty1") self.assertEqual(loader[u"TestEmpty1"].version, u"0.1") self.assertEqual(loader[u"TestEmpty1"].description, u"This plugin is empty") self.assertEqual(loader[u"TestEmpty2"].name, u"TestEmpty2") self.assertEqual(loader[u"TestEmpty2"].version, u"0.1") self.assertEqual(loader[u"TestEmpty2"].description, u"This plugin is empty") self.assertEqual(loader[u"TestWikiCommand"].name, u"TestWikiCommand") self.assertEqual(loader[u"TestWikiCommand"].version, u"0.1")
def testOnOffPlugins6(self): # Тест на включение/выключение плагинов dirlist = [ u"../plugins/testempty1", u"../plugins/testempty2", u"../plugins/testwikicommand" ] loader = PluginsLoader(Application) loader.load(dirlist) self.assertEqual(len(loader), 3) self.assertEqual(len(loader.disabledPlugins), 0) self.assertTrue(loader[u"TestEmpty1"].enabled) # Отключим плагин TestEmpty1 self.config.disabledPlugins.value = [u"TestEmpty1"] loader.updateDisableList() self.assertFalse(loader.disabledPlugins[u"TestEmpty1"].enabled) # Опять включим плагин TestEmpty1 self.config.disabledPlugins.value = [] loader.updateDisableList() self.assertTrue(loader[u"TestEmpty1"].enabled)
def testDisabledPlugins(self): # Добавим плагин TestEmpty1 в черный список self.config.disabledPlugins.value = [u"TestEmpty1"] dirlist = [ u"../plugins/testempty1", u"../plugins/testempty2", u"../plugins/testwikicommand" ] loader = PluginsLoader(Application) loader.load(dirlist) self.assertEqual(len(loader), 2) self.assertEqual(loader[u"TestEmpty2"].name, u"TestEmpty2") self.assertEqual(loader[u"TestEmpty2"].version, u"0.1") self.assertEqual(loader[u"TestEmpty2"].description, u"This plugin is empty") self.assertEqual(loader[u"TestWikiCommand"].name, u"TestWikiCommand") self.assertEqual(loader[u"TestWikiCommand"].version, u"0.1") self.assertEqual(len(loader.disabledPlugins), 1) self.assertEqual(loader.disabledPlugins[u"TestEmpty1"].name, u"TestEmpty1") self.assertEqual(loader.disabledPlugins[u"TestEmpty1"].version, u"0.1") self.assertEqual(loader.disabledPlugins[u"TestEmpty1"].description, u"This plugin is empty")
def testRemove(self): # Test for remove plugin dirlist = [ "../test/plugins/testempty1", "../test/plugins/testempty2", "../test/plugins/testwikicommand" ] loader = PluginsLoader(self.application) loader.load(dirlist) # Disable TestEmpty2 self.config.disabledPlugins.value = ["TestEmpty2"] loader.updateDisableList() # pre-check self.assertEqual(len(loader), 2) self.assertEqual(len(loader.disabledPlugins), 1) # remove "TestEmpty1" (enabled) self.assertEqual(loader.remove("TestEmpty1"), True) self.assertEqual(len(loader), 1) self.assertEqual(len(loader.disabledPlugins), 1) # remove "TestEmpty2" (disabled) self.assertEqual(loader.remove("TestEmpty2"), True) self.assertEqual(len(loader), 1) self.assertEqual(len(loader.disabledPlugins), 0) # remove "TestEmpty3" (None) self.assertIs(loader.remove("TestEmpty3"), None) self.assertEqual(len(loader), 1) self.assertEqual(len(loader.disabledPlugins), 0)
class TemplateTest (unittest.TestCase): """Тесты плагина Template""" def setUp (self): self.__createWiki() dirlist = [u"../plugins/template"] self.loader = PluginsLoader(Application) self.loader.load (dirlist) def tearDown (self): removeDir (self.path) self.loader.clear() def __createWiki (self): # Здесь будет создаваться вики self.path = mkdtemp (prefix=u'Абырвалг абыр') self.wikiroot = WikiDocument.create (self.path) WikiPageFactory().create (self.wikiroot, u"Страница 1", []) self.testPage = self.wikiroot[u"Страница 1"] def testPluginLoad (self): self.assertEqual (len (self.loader), 1)
def testLoad(self): dirlist = [ u"../plugins/testempty1", u"../plugins/testempty2", u"../plugins/testempty2" ] loader = PluginsLoader(Application) loader.load(dirlist) self.assertEqual(len(loader), 2) self.assertEqual(loader[u"TestEmpty1"].name, u"TestEmpty1") self.assertEqual(loader[u"TestEmpty1"].version, u"0.1") self.assertEqual(loader[u"TestEmpty1"].description, u"This plugin is empty") self.assertEqual(loader[u"TestEmpty1"].application, Application) self.assertEqual(loader[u"TestEmpty2"].name, u"TestEmpty2") self.assertEqual(loader[u"TestEmpty2"].version, u"0.1") self.assertEqual(loader[u"TestEmpty2"].description, u"This plugin is empty") # Проверим, как работает итерация for plugin in loader: self.assertTrue(plugin == loader[u"TestEmpty1"] or plugin == loader[u"TestEmpty2"]) loader.clear() self.assertEqual(len(loader), 0)
class PluginNameTest (unittest.TestCase): """Тесты плагина PluginName""" def setUp (self): self.__createWiki() dirlist = [u"../plugins/pluginname"] self.loader = PluginsLoader(Application) self.loader.load (dirlist) def tearDown (self): removeDir (self.path) self.loader.clear() def __createWiki (self): # Здесь будет создаваться вики self.path = u"../test/testwiki" removeDir (self.path) self.rootwiki = WikiDocument.create (self.path) WikiPageFactory().create (self.rootwiki, u"Страница 1", []) self.testPage = self.rootwiki[u"Страница 1"] def testPluginLoad (self): self.assertEqual (len (self.loader), 1)
def testLoadInvalid_01(self): dirlist = [ "../test/plugins/testinvalid", # Нет такой директории "../test/plugins/testinvalid1", "../test/plugins/testinvalid2", "../test/plugins/testinvalid4", "../test/plugins/testinvalid5", "../test/plugins/testinvalid6", "../test/plugins/testinvalid7", "../test/plugins/testinvalid8", # no plugin.py file in the packages "../test/plugins/testempty1", "../test/plugins/testempty2", "../test/plugins/testempty2", # Ссылка на плагин testempty2 повторяется еще раз "../test/plugins/testwikicommand", "../test/plugins/testoutdated", "../test/plugins/testfromfuture", ] loader = PluginsLoader(self.application) loader.enableOutput = False loader.load(dirlist) self.assertEqual(len(loader), 3) self.assertEqual(loader["TestEmpty1"].name, "TestEmpty1") self.assertEqual(loader["TestEmpty1"].version, "0.1") self.assertEqual(loader["TestEmpty1"].description, "This plugin is empty") self.assertEqual(loader["TestEmpty2"].name, "TestEmpty2") self.assertEqual(loader["TestEmpty2"].version, "0.1") self.assertEqual(loader["TestEmpty2"].description, "This plugin is empty") self.assertEqual(loader["TestWikiCommand"].name, "TestWikiCommand") self.assertEqual(loader["TestWikiCommand"].version, "0.1")
def testLoad(self): dirlist = [u"../test/plugins/testempty1", u"../test/plugins/testempty2", u"../test/plugins/testempty2"] loader = PluginsLoader(Application) loader.load(dirlist) self.assertEqual(len(loader), 2) self.assertEqual(loader[u"TestEmpty1"].name, u"TestEmpty1") self.assertEqual(loader[u"TestEmpty1"].version, u"0.1") self.assertEqual(loader[u"TestEmpty1"].description, u"This plugin is empty") self.assertEqual(loader[u"TestEmpty1"].application, Application) self.assertEqual(loader[u"TestEmpty2"].name, u"TestEmpty2") self.assertEqual(loader[u"TestEmpty2"].version, u"0.1") self.assertEqual(loader[u"TestEmpty2"].description, u"This plugin is empty") # Проверим, как работает итерация for plugin in loader: self.assertTrue(plugin == loader[u"TestEmpty1"] or plugin == loader[u"TestEmpty2"]) loader.clear() self.assertEqual(len(loader), 0)
class PluginNameTest(unittest.TestCase): """Тесты плагина PluginName""" def setUp(self): self.__createWiki() dirlist = [u"../plugins/pluginname"] self.loader = PluginsLoader(Application) self.loader.load(dirlist) def tearDown(self): removeDir(self.path) self.loader.clear() def __createWiki(self): # Здесь будет создаваться вики self.path = u"../test/testwiki" removeDir(self.path) self.rootwiki = WikiDocument.create(self.path) WikiPageFactory().create(self.rootwiki, u"Страница 1", []) self.testPage = self.rootwiki[u"Страница 1"] def testPluginLoad(self): self.assertEqual(len(self.loader), 1)
def testVersion_01(self): dirlist = ["../test/plugins/testempty3"] loader = PluginsLoader(self.application) loader.load(dirlist) self.assertEqual(len(loader), 1) self.assertEqual(loader["TestEmpty3"].name, "TestEmpty3") self.assertEqual(loader["TestEmpty3"].version, "0.5")
def testVersion_02(self): dirlist = [u"../test/plugins/testempty4"] loader = PluginsLoader(Application) loader.load(dirlist) self.assertEqual(len(loader), 1) self.assertEqual(loader[u"TestEmpty4"].name, u"TestEmpty4") self.assertEqual(loader[u"TestEmpty4"].version, None)
def testLoadInvalid_03(self): dirlist = ["../test/plugins/testfromfuture"] loader = PluginsLoader(self.application) loader.enableOutput = False loader.load(dirlist) self.assertEqual(len(loader), 0) self.assertEqual(len(loader.invalidPlugins), 1)
def testLoadInvalid_04(self): dirlist = [u"../test/plugins/testoutdated"] loader = PluginsLoader(Application) loader.enableOutput = False loader.load(dirlist) self.assertEqual(len(loader), 0) self.assertEqual(len(loader.invalidPlugins), 1)
def testLoadInvalid_04(self): dirlist = [u"../test/plugins/testoutdated"] loader = PluginsLoader(Application) loader.enableOutput = False loader.load(dirlist) self.assertEqual(len(loader), 0) self.assertEqual(len(loader.invalidPlugins), 1)
def testDisable(self): dirlist = ["../test/plugins/testempty1", "../test/plugins/testempty2"] loader = PluginsLoader(self.application) loader.load(dirlist) self.assertEqual(len(loader.loadedPlugins), 2) loader.disable('TestEmpty1') self.assertEqual(len(loader.disabledPlugins), 1)
def setUp(self): self.__createWiki() dirlist = [u"../plugins/testwikicommand"] loader = PluginsLoader(Application) loader.load (dirlist) factory = ParserFactory() self.parser = factory.make (self.testPage, Application.config)
def setUp(self): self.__createWiki() dirlist = [u"../test/plugins/testwikicommand"] loader = PluginsLoader(Application) loader.load(dirlist) factory = ParserFactory() self.parser = factory.make(self.testPage, Application.config)
class LinkCreatorTest (unittest.TestCase): def setUp(self): dirlist = [u"../plugins/markdown"] self.loader = PluginsLoader(Application) self.loader.load(dirlist) def test_empty_01(self): from markdown.links.linkcreator import LinkCreator creator = LinkCreator() link, reference = creator.create(u'', u'', u'') link_right = u'[]()' self.assertEqual(link, link_right) self.assertIsNone(reference) def test_empty_02(self): from markdown.links.linkcreator import LinkCreator creator = LinkCreator() link, reference = creator.create(u' ', u'', u'') link_right = u'[]()' self.assertEqual(link, link_right) self.assertIsNone(reference) def test_empty_03(self): from markdown.links.linkcreator import LinkCreator creator = LinkCreator() link, reference = creator.create(u'', u' ', u'') link_right = u'[ ]()' self.assertEqual(link, link_right) self.assertIsNone(reference) def test_link_01(self): from markdown.links.linkcreator import LinkCreator creator = LinkCreator() link, reference = creator.create(u'http://jenyay.net', u'Комментарий', u'') link_right = u'[Комментарий](http://jenyay.net)' self.assertEqual(link, link_right) self.assertIsNone(reference) def test_title_01(self): from markdown.links.linkcreator import LinkCreator creator = LinkCreator() link, reference = creator.create(u'http://jenyay.net', u'Комментарий', u'Заголовок') link_right = u'[Комментарий](http://jenyay.net "Заголовок")' self.assertEqual(link, link_right) self.assertIsNone(reference)
def testLoadInvalid_02(self): dirlist = [u"../test/plugins/testinvalid1"] loader = PluginsLoader(Application) loader.enableOutput = False loader.load(dirlist) self.assertEqual(len(loader), 0) self.assertEqual(len(loader.invalidPlugins), 1) self.assertIn(u'TypeError', loader.invalidPlugins[0].description)
class LinkCreatorTest (unittest.TestCase): def setUp(self): dirlist = ["plugins/markdown"] self.loader = PluginsLoader(Application) self.loader.load(dirlist) def test_empty_01(self): from markdown.links.linkcreator import LinkCreator creator = LinkCreator() link, reference = creator.create('', '', '') link_right = '[]()' self.assertEqual(link, link_right) self.assertIsNone(reference) def test_empty_02(self): from markdown.links.linkcreator import LinkCreator creator = LinkCreator() link, reference = creator.create(' ', '', '') link_right = '[]()' self.assertEqual(link, link_right) self.assertIsNone(reference) def test_empty_03(self): from markdown.links.linkcreator import LinkCreator creator = LinkCreator() link, reference = creator.create('', ' ', '') link_right = '[ ]()' self.assertEqual(link, link_right) self.assertIsNone(reference) def test_link_01(self): from markdown.links.linkcreator import LinkCreator creator = LinkCreator() link, reference = creator.create('http://jenyay.net', 'Комментарий', '') link_right = '[Комментарий](http://jenyay.net)' self.assertEqual(link, link_right) self.assertIsNone(reference) def test_title_01(self): from markdown.links.linkcreator import LinkCreator creator = LinkCreator() link, reference = creator.create('http://jenyay.net', 'Комментарий', 'Заголовок') link_right = '[Комментарий](http://jenyay.net "Заголовок")' self.assertEqual(link, link_right) self.assertIsNone(reference)
def testLoadInvalid_02(self): dirlist = [u"../test/plugins/testinvalid1"] loader = PluginsLoader(Application) loader.enableOutput = False loader.load(dirlist) self.assertEqual(len(loader), 0) self.assertEqual(len(loader.invalidPlugins), 1) self.assertIn(u'TypeError', loader.invalidPlugins[0].description)
def testGetInfo_None(self): dirlist = [ "../test/plugins/testempty1", ] loader = PluginsLoader(self.application) loader.load(dirlist) self.assertEqual(len(loader), 1) plugInfo = loader.getInfo("Wring_module") self.assertIs(plugInfo, None)
def testGetInfo(self): dirlist = [ "../test/plugins/testempty1", ] loader = PluginsLoader(self.application) loader.load(dirlist) self.assertEqual(len(loader), 1) self.assertEqual(loader["TestEmpty1"].name, "TestEmpty1") self.assertEqual(loader["TestEmpty1"].version, "0.1") plugInfo = loader.getInfo("TestEmpty1") self.assertIsInstance(plugInfo, AppInfo)
class SnippetsVarDialogTest(unittest.TestCase, BaseOutWikerGUIMixin): def setUp(self): self.initApplication() mainWnd = self.application.mainWindow plugins_dir = ["../plugins/snippets"] self.loader = PluginsLoader(self.application) self.loader.load(plugins_dir) from snippets.gui.variablesdialog import VariablesDialog self._dialog = VariablesDialog(mainWnd) def tearDown(self): self._dialog.Destroy() self.loader.clear() self.destroyApplication() def test_empty(self): variables = self._dialog.getVarDict() self.assertEqual(variables, {}) def test_single_empty(self): self._dialog.addStringVariable('test') variables = self._dialog.getVarDict() self.assertEqual(variables, {'test': ''}) def test_single(self): self._dialog.addStringVariable('test') self._dialog.setStringVariable('test', 'Проверка') variables = self._dialog.getVarDict() self.assertEqual(variables, {'test': 'Проверка'}) def test_two_items(self): self._dialog.addStringVariable('test_1') self._dialog.addStringVariable('test_2') self._dialog.setStringVariable('test_1', 'Проверка_1') self._dialog.setStringVariable('test_2', 'Проверка_2') variables = self._dialog.getVarDict() self.assertEqual(variables, {'test_1': 'Проверка_1', 'test_2': 'Проверка_2'}) def test_no_item(self): self.assertRaises(KeyError, self._dialog.setStringVariable, 'test', 'test')
class SnippetsVarDialogTest(BaseMainWndTest): def setUp(self): BaseMainWndTest.setUp(self) mainWnd = Application.mainWindow plugins_dir = [u"../plugins/snippets"] self.loader = PluginsLoader(Application) self.loader.load(plugins_dir) from snippets.gui.variablesdialog import VariablesDialog self._dialog = VariablesDialog(mainWnd) def tearDown(self): self._dialog.Destroy() self.loader.clear() BaseMainWndTest.tearDown(self) def test_empty(self): variables = self._dialog.getVarDict() self.assertEqual(variables, {}) def test_single_empty(self): self._dialog.addStringVariable(u'test') variables = self._dialog.getVarDict() self.assertEqual(variables, {u'test': u''}) def test_single(self): self._dialog.addStringVariable(u'test') self._dialog.setStringVariable(u'test', u'Проверка') variables = self._dialog.getVarDict() self.assertEqual(variables, {u'test': u'Проверка'}) def test_two_items(self): self._dialog.addStringVariable(u'test_1') self._dialog.addStringVariable(u'test_2') self._dialog.setStringVariable(u'test_1', u'Проверка_1') self._dialog.setStringVariable(u'test_2', u'Проверка_2') variables = self._dialog.getVarDict() self.assertEqual(variables, { u'test_1': u'Проверка_1', u'test_2': u'Проверка_2' }) def test_no_item(self): self.assertRaises(KeyError, self._dialog.setStringVariable, u'test', u'test')
class SnippetsVarDialogTest(unittest.TestCase, BaseOutWikerGUIMixin): def setUp(self): self.initApplication() mainWnd = self.application.mainWindow plugins_dir = ["plugins/snippets"] self.loader = PluginsLoader(self.application) self.loader.load(plugins_dir) from snippets.gui.variablesdialog import VariablesDialog self._dialog = VariablesDialog(mainWnd) def tearDown(self): self._dialog.Destroy() self.loader.clear() self.destroyApplication() def test_empty(self): variables = self._dialog.getVarDict() self.assertEqual(variables, {}) def test_single_empty(self): self._dialog.addStringVariable('test') variables = self._dialog.getVarDict() self.assertEqual(variables, {'test': ''}) def test_single(self): self._dialog.addStringVariable('test') self._dialog.setStringVariable('test', 'Проверка') variables = self._dialog.getVarDict() self.assertEqual(variables, {'test': 'Проверка'}) def test_two_items(self): self._dialog.addStringVariable('test_1') self._dialog.addStringVariable('test_2') self._dialog.setStringVariable('test_1', 'Проверка_1') self._dialog.setStringVariable('test_2', 'Проверка_2') variables = self._dialog.getVarDict() self.assertEqual(variables, {'test_1': 'Проверка_1', 'test_2': 'Проверка_2'}) def test_no_item(self): self.assertRaises(KeyError, self._dialog.setStringVariable, 'test', 'test')
class SnippetsVarDialogTest(BaseMainWndTest): def setUp(self): BaseMainWndTest.setUp(self) mainWnd = Application.mainWindow plugins_dir = [u"../plugins/snippets"] self.loader = PluginsLoader(Application) self.loader.load(plugins_dir) from snippets.gui.variablesdialog import VariablesDialog self._dialog = VariablesDialog(mainWnd) def tearDown(self): self._dialog.Destroy() self.loader.clear() BaseMainWndTest.tearDown(self) def test_empty(self): variables = self._dialog.getVarDict() self.assertEqual(variables, {}) def test_single_empty(self): self._dialog.addStringVariable(u'test') variables = self._dialog.getVarDict() self.assertEqual(variables, {u'test': u''}) def test_single(self): self._dialog.addStringVariable(u'test') self._dialog.setStringVariable(u'test', u'Проверка') variables = self._dialog.getVarDict() self.assertEqual(variables, {u'test': u'Проверка'}) def test_two_items(self): self._dialog.addStringVariable(u'test_1') self._dialog.addStringVariable(u'test_2') self._dialog.setStringVariable(u'test_1', u'Проверка_1') self._dialog.setStringVariable(u'test_2', u'Проверка_2') variables = self._dialog.getVarDict() self.assertEqual(variables, {u'test_1': u'Проверка_1', u'test_2': u'Проверка_2'}) def test_no_item(self): self.assertRaises(KeyError, self._dialog.setStringVariable, u'test', u'test')
def testGetInfo_disabled(self): # Добавим плагин TestEmpty1 в черный список self.config.disabledPlugins.value = ["TestEmpty1"] dirlist = [ "../test/plugins/testempty1", ] loader = PluginsLoader(self.application) loader.load(dirlist) self.assertEqual(len(loader), 0) self.assertEqual(len(loader.disabledPlugins), 1) plugInfo = loader.getInfo("TestEmpty1") self.assertIsInstance(plugInfo, AppInfo)
class WikiCounterCommandTest (unittest.TestCase): def setUp(self): self.encoding = "utf8" self.filesPath = u"../test/samplefiles/" self.__createWiki() dirlist = [u"../plugins/testcounter"] self.loader = PluginsLoader(Application) self.loader.load (dirlist) self.factory = ParserFactory() self.parser = self.factory.make (self.testPage, Application.config) def __createWiki (self): # Здесь будет создаваться вики self.path = u"../test/testwiki" removeWiki (self.path) self.rootwiki = WikiDocument.create (self.path) WikiPageFactory.create (self.rootwiki, u"Страница 1", []) self.testPage = self.rootwiki[u"Страница 1"] def tearDown(self): removeWiki (self.path) def testPluginLoad (self): self.assertEqual ( len (self.loader), 1) def testCounter (self): text = u"(:counter:) (:counter:)" validResult = u"1 2" result = self.parser.toHtml (text) self.assertEqual (result, validResult) # Проверим, что для нового парсера счетчик сбрасывается parser2 = self.factory.make (self.testPage, Application.config) result2 = parser2.toHtml (text) self.assertEqual (result2, validResult)
class LangListTest(unittest.TestCase, BaseOutWikerGUIMixin): def setUp(self): self.initApplication() dirlist = ["../plugins/source"] self.loader = PluginsLoader(self.application) self.loader.load(dirlist) from source.langlist import LangList self._langlist = LangList() def tearDown(self): self.loader.clear() self.destroyApplication() def test_all(self): self.assertIn('Ada', self._langlist.allNames()) self.assertIn('HTML + Angular2', self._langlist.allNames()) self.assertIn('1S', self._langlist.allNames()) def test_getAllDesignations(self): self.assertEqual(self._langlist.getAllDesignations('Ada'), ('ada', 'ada95', 'ada2005')) self.assertEqual(self._langlist.getAllDesignations('ANTLR'), ('antlr',)) def test_getAllDesignations_invalid(self): self.assertIsNone(self._langlist.getAllDesignations('adsfa asdfadf')) def test_getDesignation(self): self.assertEqual(self._langlist.getDesignation('Ada'), 'ada') self.assertEqual(self._langlist.getDesignation('ANTLR'), 'antlr') self.assertEqual(self._langlist.getDesignation('C++'), 'cpp') def test_getDesignation_invalid(self): self.assertIsNone(self._langlist.getDesignation('adfasdfaf')) def test_getLangName(self): self.assertEqual(self._langlist.getLangName('ada'), 'Ada') self.assertEqual(self._langlist.getLangName('ada2005'), 'Ada') self.assertEqual(self._langlist.getLangName('html+spitfire'), 'HTML+Cheetah') def test_getLangName_invalid(self): self.assertIsNone(self._langlist.getLangName('asdfadsfads'))
def testOnOffPlugins2(self): # Тест на включение/выключение плагинов dirlist = [u"../test/plugins/testempty1", u"../test/plugins/testempty2", u"../test/plugins/testwikicommand"] loader = PluginsLoader(Application) loader.load(dirlist) self.assertEqual(len(loader), 3) self.assertEqual(len(loader.disabledPlugins), 0) # Обновим черный список без изменений loader.updateDisableList() self.assertEqual(len(loader), 3) self.assertEqual(len(loader.disabledPlugins), 0)
def testOnOffPlugins2 (self): # Тест на включение/выключение плагинов dirlist = [u"../plugins/testempty1", u"../plugins/testempty2", u"../plugins/testwikicommand"] loader = PluginsLoader(Application) loader.load (dirlist) self.assertEqual (len (loader), 3) self.assertEqual (len (loader.disabledPlugins), 0) # Обновим черный список без изменений loader.updateDisableList() self.assertEqual (len (loader), 3) self.assertEqual (len (loader.disabledPlugins), 0)
class LangListTest(unittest.TestCase, BaseOutWikerGUIMixin): def setUp(self): self.initApplication() dirlist = ["plugins/source"] self.loader = PluginsLoader(self.application) self.loader.load(dirlist) from source.langlist import LangList self._langlist = LangList() def tearDown(self): self.loader.clear() self.destroyApplication() def test_all(self): self.assertIn('Ada', self._langlist.allNames()) self.assertIn('HTML + Angular2', self._langlist.allNames()) self.assertIn('1S', self._langlist.allNames()) def test_getAllDesignations(self): self.assertEqual(self._langlist.getAllDesignations('Ada'), ('ada', 'ada95', 'ada2005')) self.assertEqual(self._langlist.getAllDesignations('ANTLR'), ('antlr', )) def test_getAllDesignations_invalid(self): self.assertIsNone(self._langlist.getAllDesignations('adsfa asdfadf')) def test_getDesignation(self): self.assertEqual(self._langlist.getDesignation('Ada'), 'ada') self.assertEqual(self._langlist.getDesignation('ANTLR'), 'antlr') self.assertEqual(self._langlist.getDesignation('C++'), 'cpp') def test_getDesignation_invalid(self): self.assertIsNone(self._langlist.getDesignation('adfasdfaf')) def test_getLangName(self): self.assertEqual(self._langlist.getLangName('ada'), 'Ada') self.assertEqual(self._langlist.getLangName('ada2005'), 'Ada') self.assertEqual(self._langlist.getLangName('html+spitfire'), 'HTML+Cheetah') def test_getLangName_invalid(self): self.assertIsNone(self._langlist.getLangName('asdfadsfads'))
class SnippetsVarPanelTest(BaseMainWndTest): def setUp(self): BaseMainWndTest.setUp(self) mainWnd = Application.mainWindow plugins_dir = [u"../plugins/snippets"] self.loader = PluginsLoader(Application) self.loader.load(plugins_dir) from snippets.gui.variablesdialog import VaraiblesPanel self._panel = VaraiblesPanel(mainWnd) def tearDown(self): self.loader.clear() BaseMainWndTest.tearDown(self) def test_empty(self): variables = self._panel.getVarDict() self.assertEqual(variables, {}) def test_single_empty(self): self._panel.addStringVariable(u"test") variables = self._panel.getVarDict() self.assertEqual(variables, {u"test": u""}) def test_single(self): self._panel.addStringVariable(u"test") self._panel.setVarString(u"test", u"Проверка") variables = self._panel.getVarDict() self.assertEqual(variables, {u"test": u"Проверка"}) def test_two_items(self): self._panel.addStringVariable(u"test_1") self._panel.addStringVariable(u"test_2") self._panel.setVarString(u"test_1", u"Проверка_1") self._panel.setVarString(u"test_2", u"Проверка_2") variables = self._panel.getVarDict() self.assertEqual(variables, {u"test_1": u"Проверка_1", u"test_2": u"Проверка_2"}) def test_no_item(self): self.assertRaises(KeyError, self._panel.setVarString, u"test", u"test")
def testOnOffPlugins3 (self): # Тест на включение/выключение плагинов dirlist = [u"../plugins/testempty1", u"../plugins/testempty2", u"../plugins/testwikicommand"] loader = PluginsLoader(Application) loader.load (dirlist) self.assertEqual (len (loader), 3) self.assertEqual (len (loader.disabledPlugins), 0) # Добавим в черный список плагины, которые не существуют self.config.disabledPlugins.value = [u"TestEmpty1111"] loader.updateDisableList() self.assertEqual (len (loader), 3) self.assertEqual (len (loader.disabledPlugins), 0)
def testLoadedPlugins(self): # Test for remove plugin dirlist = [ "../test/plugins/testempty1", "../test/plugins/testempty2", "../test/plugins/testwikicommand" ] loader = PluginsLoader(self.application) loader.load(dirlist) # Disable TestEmpty2 self.config.disabledPlugins.value = ["TestEmpty2"] loader.updateDisableList() self.assertEqual(len(loader.loadedPlugins), 3) self.assertIn("TestEmpty1", loader.loadedPlugins) self.assertIn("TestEmpty2", loader.loadedPlugins) self.assertIn("TestWikiCommand", loader.loadedPlugins)
def testOnOffPlugins3(self): # Тест на включение/выключение плагинов dirlist = [u"../test/plugins/testempty1", u"../test/plugins/testempty2", u"../test/plugins/testwikicommand"] loader = PluginsLoader(Application) loader.load(dirlist) self.assertEqual(len(loader), 3) self.assertEqual(len(loader.disabledPlugins), 0) # Добавим в черный список плагины, которые не существуют self.config.disabledPlugins.value = [u"TestEmpty1111"] loader.updateDisableList() self.assertEqual(len(loader), 3) self.assertEqual(len(loader.disabledPlugins), 0)
class MarkdownPolyactionsTest(BaseEditorPolyactionsTest): """Test polyactions for Markdown pages""" def setUp(self): dirlist = [u"../plugins/markdown"] self.loader = PluginsLoader(Application) self.loader.load(dirlist) super(MarkdownPolyactionsTest, self).setUp() def tearDown(self): self.loader.clear() super(MarkdownPolyactionsTest, self).tearDown() def _createPage(self): from markdown.markdownpage import MarkdownPageFactory return MarkdownPageFactory().create(self.wikiroot, u"Markdown-страница", []) def _getEditor(self): return Application.mainWindow.pagePanel.pageView.codeEditor
def testEnable(self): self.config.disabledPlugins.value = ["TestEmpty1", "TestEmpty2"] dirlist = ["../test/plugins/testempty1", "../test/plugins/testempty2"] loader = PluginsLoader(self.application) loader.load(dirlist) self.assertEqual(len(loader.disabledPlugins), 2) loader.enable('TestEmpty1') self.assertEqual(len(loader), 1) self.assertEqual(len(loader.disabledPlugins), 1) loader.enable('TestEmpty2') loader.enable('TestEmpty2') self.assertEqual(len(loader), 2) self.assertEqual(len(loader.disabledPlugins), 0)
class HtmlFormatterTest(unittest.TestCase): """Тесты плагина HtmlFormatter""" def setUp(self): dirlist = [u"../plugins/htmlformatter"] self.loader = PluginsLoader(Application) self.loader.load(dirlist) def tearDown(self): self.loader.clear() def testPluginLoad(self): self.assertEqual(len(self.loader), 1) def testFactory(self): from htmlformatter.paragraphimprover import ParagraphHtmlImprover factory = HtmlImproverFactory(Application) self.assertEqual(type(factory['pimprover']), ParagraphHtmlImprover)
class MarkdownPolyactionsTest (BaseEditorPolyactionsTest): """Test polyactions for Markdown pages""" def setUp(self): dirlist = [u"../plugins/markdown"] self.loader = PluginsLoader(Application) self.loader.load(dirlist) super(MarkdownPolyactionsTest, self).setUp() def tearDown(self): self.loader.clear() super(MarkdownPolyactionsTest, self).tearDown() def _createPage(self): from markdown.markdownpage import MarkdownPageFactory return MarkdownPageFactory().create(self.wikiroot, u"Markdown-страница", []) def _getEditor(self): return Application.mainWindow.pagePanel.pageView.codeEditor
def testOnOffPlugins4 (self): # Тест на включение/выключение плагинов dirlist = [u"../plugins/testempty1", u"../plugins/testempty2", u"../plugins/testwikicommand"] # Сразу заблокируем все плагины self.config.disabledPlugins.value = [u"TestEmpty1", u"TestEmpty2", u"TestWikiCommand"] loader = PluginsLoader(Application) loader.load (dirlist) self.assertEqual (len (loader), 0) self.assertEqual (len (loader.disabledPlugins), 3) # Обновим плагины без изменений loader.updateDisableList() self.assertEqual (len (loader), 0) self.assertEqual (len (loader.disabledPlugins), 3)
def testOnOffPlugins1 (self): # Тест на включение/выключение плагинов dirlist = [u"../plugins/testempty1", u"../plugins/testempty2", u"../plugins/testwikicommand"] loader = PluginsLoader(Application) loader.load (dirlist) self.assertEqual (len (loader), 3) self.assertEqual (len (loader.disabledPlugins), 0) # Отключим плагин TestEmpty1 self.config.disabledPlugins.value = [u"TestEmpty1"] loader.updateDisableList() self.assertEqual (len (loader), 2) self.assertEqual (len (loader.disabledPlugins), 1) self.assertEqual (loader[u"TestEmpty2"].name, u"TestEmpty2") self.assertEqual (loader.disabledPlugins[u"TestEmpty1"].name, u"TestEmpty1")
class HtmlFormatterTest(unittest.TestCase): """Тесты плагина HtmlFormatter""" def setUp(self): dirlist = [u"../plugins/htmlformatter"] self.loader = PluginsLoader(Application) self.loader.load(dirlist) def tearDown(self): self.loader.clear() def testPluginLoad(self): self.assertEqual(len(self.loader), 1) def testFactory(self): from htmlformatter.paragraphimprover import ParagraphHtmlImprover factory = HtmlImproverFactory(Application) self.assertEqual(type(factory["pimprover"]), ParagraphHtmlImprover)
def testOnOffPlugins4(self): # Тест на включение/выключение плагинов dirlist = [u"../test/plugins/testempty1", u"../test/plugins/testempty2", u"../test/plugins/testwikicommand"] # Сразу заблокируем все плагины self.config.disabledPlugins.value = [u"TestEmpty1", u"TestEmpty2", u"TestWikiCommand"] loader = PluginsLoader(Application) loader.load(dirlist) self.assertEqual(len(loader), 0) self.assertEqual(len(loader.disabledPlugins), 3) # Обновим плагины без изменений loader.updateDisableList() self.assertEqual(len(loader), 0) self.assertEqual(len(loader.disabledPlugins), 3)
class HtmlFormatterTest (unittest.TestCase, BaseOutWikerMixin): """Тесты плагина HtmlFormatter""" def setUp(self): self.initApplication() dirlist = ["../plugins/htmlformatter"] self.loader = PluginsLoader(self.application) self.loader.load(dirlist) def tearDown(self): self.loader.clear() self.destroyApplication() def testPluginLoad(self): self.assertEqual(len(self.loader), 1) def testFactory(self): from htmlformatter.paragraphimprover import ParagraphHtmlImprover factory = HtmlImproverFactory(self.application) self.assertEqual(type(factory['pimprover']), ParagraphHtmlImprover)
class ParagraphHtmlImproverTest(unittest.TestCase): def setUp(self): dirlist = [u"../plugins/htmlformatter"] self.loader = PluginsLoader(Application) self.loader.load(dirlist) factory = HtmlImproverFactory(Application) self.improver = factory["pimprover"] def tearDown(self): self.loader.clear() def test_empty(self): src = u"" expectedResult = u"" result = self.improver.run(src) self.assertEqual(expectedResult, result) def test_text_single_line(self): src = u"Абырвалг" expectedResult = u"<p>Абырвалг</p>" result = self.improver.run(src) self.assertEqual(expectedResult, result) def test_text_br(self): src = u"""Абырвалг Foo Bar""" expectedResult = u"""<p>Абырвалг<br/> Foo<br/> Bar</p>""" result = self.improver.run(src) self.assertEqual(expectedResult, result) def test_text_p_01(self): src = u"""Абырвалг Второй параграф""" expectedResult = u"""<p>Абырвалг</p> <p>Второй параграф</p>""" result = self.improver.run(src) self.assertEqual(expectedResult, result) def test_text_p_02(self): src = u"""Абырвалг Второй параграф """ expectedResult = u"""<p>Абырвалг</p> <p>Второй параграф</p>""" result = self.improver.run(src) self.assertEqual(expectedResult, result) def test_improve_01(self): src = ur"""<h2>Attach links</h2>Attach:file.odt<br/><a href="__attach/file.odt">file.odt</a><br/><a href="__attach/file.odt">alternative text</a><br/><a href="__attach/file with spaces.pdf">file with spaces.pdf</a><h2>Images</h2>""" expectedResult = ur"""<h2>Attach links</h2> <p>Attach:file.odt<br/> <a href="__attach/file.odt">file.odt</a><br/> <a href="__attach/file.odt">alternative text</a><br/> <a href="__attach/file with spaces.pdf">file with spaces.pdf</a></p> <h2>Images</h2>""" result = self.improver.run(src) self.assertEqual(expectedResult, result) def test_pre_01(self): src = ur"""qweqweqw qweqwe qwewqeqwe wqe qweqweqw qwe qweqwe<pre> аап ываыв ываываыываы ыва ыва ываыва выа выа ываыв фывфв фывфывыф ыфв вапвапввап вапвапвап вапвапвап вапваапва</pre> sdfsdf sdfsdf sdfsdf sdf sdfsdf sdf""" expectedResult = ur"""<p>qweqweqw qweqwe<br/> qwewqeqwe wqe</p> <p>qweqweqw qwe qweqwe</p> <pre> аап ываыв ываываыываы ыва ыва ываыва выа выа ываыв фывфв фывфывыф ыфв вапвапввап вапвапвап вапвапвап вапваапва</pre> <p>sdfsdf sdfsdf<br/> sdfsdf<br/> sdf sdfsdf sdf</p>""" result = self.improver.run(src) self.assertEqual(expectedResult, result, result) def test_pre_02(self): src = ur"""Абырвалг<pre><br/><h1>111</h1></pre>Абырвалг<pre><br/><h1>111</h1></pre>""" expectedResult = ur"""<p>Абырвалг</p> <pre><br/><h1>111</h1></pre> <p>Абырвалг</p> <pre><br/><h1>111</h1></pre>""" result = self.improver.run(src) self.assertEqual(expectedResult, result, result) def test_pre_03(self): src = ur"""Абырвалг <pre>111</pre> Абырвалг <pre>222</pre>""" expectedResult = ur"""<p>Абырвалг</p> <pre>111</pre> <p>Абырвалг</p> <pre>222</pre>""" result = self.improver.run(src) self.assertEqual(expectedResult, result, result) def test_pre_04(self): src = ur"""Абырвалг < pre >111 Абырвалг йцукен</ pre > <pre>222</pre>""" expectedResult = ur"""<p>Абырвалг</p> < pre >111 Абырвалг йцукен</ pre > <pre>222</pre>""" result = self.improver.run(src) self.assertEqual(expectedResult, result, result) def test_script_01(self): src = ur"""Абырвалг <script>Абырвалг йцукен qwerty фыва </script>""" expectedResult = ur"""<p>Абырвалг</p> <script>Абырвалг йцукен qwerty фыва </script>""" result = self.improver.run(src) self.assertEqual(expectedResult, result, result) def test_script_02(self): src = ur"""Абырвалг <script>Абырвалг йцукен qwerty фыва </script>""" expectedResult = ur"""<p>Абырвалг</p> <script>Абырвалг йцукен qwerty фыва </script>""" result = self.improver.run(src) self.assertEqual(expectedResult, result, result) def test_script_03(self): src = ur"""Абырвалг < script >111 Абырвалг йцукен</ script > <script>222</script>""" expectedResult = ur"""<p>Абырвалг</p> < script >111 Абырвалг йцукен</ script > <script>222</script>""" result = self.improver.run(src) self.assertEqual(expectedResult, result, result) def test_script_pre_01(self): src = ur"""Абырвалг <script>Абырвалг <pre> йцукен qwerty </pre> фыва </script>""" expectedResult = ur"""<p>Абырвалг</p> <script>Абырвалг <pre> йцукен qwerty </pre> фыва </script>""" result = self.improver.run(src) self.assertEqual(expectedResult, result, result) def test_script_pre_02(self): src = ur"""Абырвалг <script>Абырвалг <pre> йцукен qwerty </pre> фыва </script>Абырвалг""" expectedResult = ur"""<p>Абырвалг</p> <script>Абырвалг <pre> йцукен qwerty </pre> фыва </script> <p>Абырвалг</p>""" result = self.improver.run(src) self.assertEqual(expectedResult, result, result) def test_blockquote_01(self): src = ur"""<blockquote>Абырвалг</blockquote>""" expectedResult = ur"""<blockquote> <p>Абырвалг</p> </blockquote>""" result = self.improver.run(src) self.assertEqual(expectedResult, result, result) def test_blockquote_02(self): src = ur"""Абзац 1<blockquote>Абырвалг</blockquote>Абзац 2""" expectedResult = ur"""<p>Абзац 1</p> <blockquote> <p>Абырвалг</p> </blockquote> <p>Абзац 2</p>""" result = self.improver.run(src) self.assertEqual(expectedResult, result, result) def test_blockquote_03(self): src = ur"""Абзац 1 <blockquote>Абырвалг</blockquote> Абзац 2""" expectedResult = ur"""<p>Абзац 1</p> <blockquote> <p>Абырвалг</p> </blockquote> <p>Абзац 2</p>""" result = self.improver.run(src) self.assertEqual(expectedResult, result, result) def test_blockquote_04(self): src = ur"""Абзац 1 <blockquote> Абырвалг </blockquote> Абзац 2""" expectedResult = ur"""<p>Абзац 1</p> <blockquote> <p>Абырвалг</p> </blockquote> <p>Абзац 2</p>""" result = self.improver.run(src) self.assertEqual(expectedResult, result, result) def test_table_01(self): src = ur"""Абзац 1<table><tr><td>Ячейка таблицы</td></tr></table>Абзац 2""" expectedResult = ur"""<p>Абзац 1 <table> <tr> <td>Ячейка таблицы</td> </tr> </table> Абзац 2</p>""" result = self.improver.run(src) self.assertEqual(expectedResult, result, result) def test_table_02(self): src = ur"""Абзац 1 <table><tr><td>Ячейка таблицы</td></tr></table> Абзац 2""" expectedResult = ur"""<p>Абзац 1 <table> <tr> <td>Ячейка таблицы</td> </tr> </table> Абзац 2</p>""" result = self.improver.run(src) self.assertEqual(expectedResult, result, result) def test_table_03(self): src = ur"""Абзац 1 <table><tr><td>Ячейка таблицы</td></tr></table> Абзац 2""" expectedResult = ur"""<p>Абзац 1</p> <p> <table> <tr> <td>Ячейка таблицы</td> </tr> </table> Абзац 2</p>""" result = self.improver.run(src) self.assertEqual(expectedResult, result, result)
class PluginLoadingMixin(BaseOutWikerGUIMixin, metaclass=ABCMeta): @abstractmethod def getPluginDir(self): """ Должен возвращать путь до папки с тестируемым плагином """ pass @abstractmethod def getPluginName(self): """ Должен возвращать имя плагина, по которому его можно найти в PluginsLoader """ pass def setUp(self): self.initApplication() self.wikiroot = self.createWiki() self.__createWiki() dirlist = [self.getPluginDir()] self.loader = PluginsLoader(self.application) self.loader.load(dirlist) def __createWiki(self): # Здесь будет создаваться вики WikiPageFactory().create(self.wikiroot, "Викистраница", []) TextPageFactory().create(self.wikiroot, "Текст", []) HtmlPageFactory().create(self.wikiroot, "HTML", []) SearchPageFactory().create(self.wikiroot, "Search", []) def tearDown(self): self.application.selectedPage = None self.application.wikiroot = None self.loader.clear() self.destroyApplication() self.destroyWiki(self.wikiroot) def testPluginLoad(self): self.assertEqual(len(self.loader), 1) self.assertNotEqual(self.loader[self.getPluginName()], None) def testDestroy_01(self): self.application.wikiroot = None self.loader.clear() def testDestroy_02(self): self.application.wikiroot = self.wikiroot self.application.selectedPage = None self.loader.clear() def testDestroy_03(self): self.application.wikiroot = self.wikiroot self.application.selectedPage = self.wikiroot["Викистраница"] self.loader.clear() def testDestroy_04(self): self.application.wikiroot = self.wikiroot self.application.selectedPage = self.wikiroot["Текст"] self.loader.clear() def testDestroy_05(self): self.application.wikiroot = self.wikiroot self.application.selectedPage = self.wikiroot["HTML"] self.loader.clear() def testDestroy_06(self): self.application.wikiroot = self.wikiroot self.application.selectedPage = self.wikiroot["Search"] self.loader.clear() def testDestroy_07(self): self.application.wikiroot = self.wikiroot self.application.selectedPage = self.wikiroot["Викистраница"] self.loader.disable(self.getPluginName()) action = self.application.actionController.getAction(SwitchCodeResultAction.stringId) action.run(None) self.loader.clear() def testDestroy_08(self): self.application.wikiroot = self.wikiroot self.application.selectedPage = self.wikiroot["HTML"] self.loader.disable(self.getPluginName()) action = self.application.actionController.getAction(SwitchCodeResultAction.stringId) action.run(None) self.loader.clear() def testDestroy_09(self): self.application.wikiroot = self.wikiroot self.application.selectedPage = self.wikiroot["Викистраница"] self.loader.clear() action = self.application.actionController.getAction(SwitchCodeResultAction.stringId) action.run(None) def testDestroy_10(self): self.application.wikiroot = self.wikiroot self.application.selectedPage = self.wikiroot["HTML"] self.loader.clear() action = self.application.actionController.getAction(SwitchCodeResultAction.stringId) action.run(None)
class HackPage_SetAliasTest(unittest.TestCase, BaseOutWikerGUIMixin): def setUp(self): self.initApplication() self.wikiroot = self.createWiki() self.__createWiki() self.testPage = self.wikiroot["Страница 1"] dirlist = ["../plugins/hackpage"] self._loader = PluginsLoader(self.application) self._loader.load(dirlist) Tester.dialogTester.clear() def tearDown(self): Tester.dialogTester.clear() self.application.wikiroot = None removeDir(self.wikiroot.path) self._loader.clear() self.destroyApplication() self.destroyWiki(self.wikiroot) def __createWiki(self): WikiPageFactory().create(self.wikiroot, "Страница 1", []) def _setValue(self, dialog, value): dialog.Value = value return wx.ID_OK def test_set_alias_default_01(self): from hackpage.utils import setAliasWithDialog Tester.dialogTester.appendOk() setAliasWithDialog(self.testPage, self.application) self.assertEqual(self.testPage.alias, None) self.assertEqual(Tester.dialogTester.count, 0) def test_set_alias_default_02(self): from hackpage.utils import setAliasWithDialog Tester.dialogTester.appendCancel() setAliasWithDialog(self.testPage, self.application) self.assertEqual(self.testPage.alias, None) self.assertEqual(Tester.dialogTester.count, 0) def test_set_alias_01(self): from hackpage.utils import setAliasWithDialog alias = 'Псевдоним страницы' Tester.dialogTester.append(self._setValue, alias) setAliasWithDialog(self.testPage, self.application) self.assertEqual(self.testPage.alias, alias) self.assertEqual(Tester.dialogTester.count, 0) def test_set_alias_02(self): from hackpage.utils import setAliasWithDialog alias = ' Псевдоним страницы ' Tester.dialogTester.append(self._setValue, alias) setAliasWithDialog(self.testPage, self.application) self.assertEqual(self.testPage.alias, alias) self.assertEqual(Tester.dialogTester.count, 0) def test_set_alias_03(self): from hackpage.utils import setAliasWithDialog self.testPage.alias = 'Псевдоним страницы' Tester.dialogTester.append(self._setValue, '') setAliasWithDialog(self.testPage, self.application) self.assertEqual(self.testPage.alias, None) self.assertEqual(Tester.dialogTester.count, 0)
class SourceStyleTest (unittest.TestCase): def setUp(self): self.__pluginname = u"Source" self.__createWiki() dirlist = [u"../plugins/source"] # Путь, где лежат примеры исходников в разных кодировках self.samplefilesPath = u"../test/samplefiles/sources" # Пример программы self.pythonSource = u'''import os # Комментарий def hello (count): """ Hello world """ for i in range (10): print "Hello world!!!" ''' self.loader = PluginsLoader(Application) self.loader.load (dirlist) self.config = self.loader[self.__pluginname].config self.config.tabWidth.value = 4 self.config.defaultLanguage.remove_option() Application.config.remove_section (self.config.section) self.factory = ParserFactory() self.parser = self.factory.make (self.testPage, Application.config) def __createWiki (self): # Здесь будет создаваться вики self.path = mkdtemp (prefix=u'Абырвалг абыр') self.wikiroot = WikiDocument.create (self.path) WikiPageFactory().create (self.wikiroot, u"Страница 1", []) self.testPage = self.wikiroot[u"Страница 1"] def tearDown(self): self.config.tabWidth.value = 4 Application.config.remove_section (self.config.section) removeDir (self.path) self.loader.clear() def testDefaultStyle (self): text = u'(:source lang="python" tabwidth=4:){0}(:sourceend:)'.format (self.pythonSource) self.testPage.content = text generator = HtmlGenerator (self.testPage) result = generator.makeHtml (Style().getPageStyle (self.testPage)) innerString1 = u".highlight-default .c" innerString2 = u".highlight-default .c { color: #408080; font-style: italic } /* Comment */" innerString3 = u' <span class="k">print</span> <span class="s2">"Hello world!!!"</span>' innerString4 = u'<span class="kn">import</span> <span class="nn">os</span>' self.assertTrue (innerString1 in result) self.assertTrue (innerString2 in result) self.assertTrue (innerString3 in result) self.assertTrue (innerString4 in result) def testDefaultInvalidStyle (self): text = u'(:source lang="python" tabwidth=4:){0}(:sourceend:)'.format (self.pythonSource) self.testPage.content = text self.config.defaultStyle.value = "invalid_blablabla" generator = HtmlGenerator (self.testPage) result = generator.makeHtml (Style().getPageStyle (self.testPage)) innerString1 = u".highlight-default .c" innerString2 = u".highlight-default .c { color: #408080; font-style: italic } /* Comment */" innerString3 = u' <span class="k">print</span> <span class="s2">"Hello world!!!"</span>' innerString4 = u'<span class="kn">import</span> <span class="nn">os</span>' self.assertTrue (innerString1 in result) self.assertTrue (innerString2 in result) self.assertTrue (innerString3 in result) self.assertTrue (innerString4 in result) def testDefaultEmptyStyle (self): text = u'(:source lang="python" tabwidth=4:){0}(:sourceend:)'.format (self.pythonSource) self.testPage.content = text self.config.defaultStyle.value = "" generator = HtmlGenerator (self.testPage) result = generator.makeHtml (Style().getPageStyle (self.testPage)) innerString1 = u".highlight-default .c" innerString2 = u".highlight-default .c { color: #408080; font-style: italic } /* Comment */" innerString3 = u' <span class="k">print</span> <span class="s2">"Hello world!!!"</span>' innerString4 = u'<span class="kn">import</span> <span class="nn">os</span>' self.assertTrue (innerString1 in result) self.assertTrue (innerString2 in result) self.assertTrue (innerString3 in result) self.assertTrue (innerString4 in result) def testDefaultStyleVim (self): text = u'(:source lang="python" tabwidth=4:){0}(:sourceend:)'.format (self.pythonSource) self.testPage.content = text self.config.defaultStyle.value = "vim" generator = HtmlGenerator (self.testPage) result = generator.makeHtml (Style().getPageStyle (self.testPage)) innerString1 = u".highlight-vim .c" innerString2 = u".highlight-vim .c { color: #000080 } /* Comment */" innerString3 = u' <span class="k">print</span> <span class="s2">"Hello world!!!"</span>' innerString4 = u'<span class="kn">import</span> <span class="nn">os</span>' self.assertTrue (innerString1 in result) self.assertTrue (innerString2 in result) self.assertTrue (innerString3 in result) self.assertTrue (innerString4 in result) def testInvalidStyle (self): text = u'(:source lang="python" tabwidth=4 style="invalid_bla-bla-bla":){0}(:sourceend:)'.format (self.pythonSource) self.testPage.content = text generator = HtmlGenerator (self.testPage) result = generator.makeHtml (Style().getPageStyle (self.testPage)) innerString1 = u".highlight-default .c" innerString2 = u".highlight-default .c { color: #408080; font-style: italic } /* Comment */" innerString3 = u' <span class="k">print</span> <span class="s2">"Hello world!!!"</span>' innerString4 = u'<span class="kn">import</span> <span class="nn">os</span>' self.assertTrue (innerString1 in result) self.assertTrue (innerString2 in result) self.assertTrue (innerString3 in result) self.assertTrue (innerString4 in result) def testStyleVim (self): text = u'(:source lang="python" tabwidth=4 style="vim":){0}(:sourceend:)'.format (self.pythonSource) self.testPage.content = text generator = HtmlGenerator (self.testPage) result = generator.makeHtml (Style().getPageStyle (self.testPage)) innerString1 = u".highlight-vim .c" innerString2 = u".highlight-vim .c { color: #000080 } /* Comment */" innerString3 = u' <span class="k">print</span> <span class="s2">"Hello world!!!"</span>' innerString4 = u'<span class="kn">import</span> <span class="nn">os</span>' self.assertTrue (innerString1 in result) self.assertTrue (innerString2 in result) self.assertTrue (innerString3 in result) self.assertTrue (innerString4 in result) def testSeveralStyles (self): text = u'''(:source lang="python" tabwidth=4 style="vim":){0}(:sourceend:) (:source lang="python" tabwidth=4:){0}(:sourceend:)'''.format (self.pythonSource) self.testPage.content = text generator = HtmlGenerator (self.testPage) result = generator.makeHtml (Style().getPageStyle (self.testPage)) innerString1 = u".highlight-vim .c" innerString2 = u".highlight-vim .c { color: #000080 } /* Comment */" innerString3 = u' <span class="k">print</span> <span class="s2">"Hello world!!!"</span>' innerString4 = u'<span class="kn">import</span> <span class="nn">os</span>' innerString5 = u".highlight-default .c" innerString6 = u".highlight-default .c { color: #408080; font-style: italic } /* Comment */" innerString7 = u'<div class="highlight-default">' innerString8 = u'<div class="highlight-vim">' self.assertTrue (innerString1 in result) self.assertTrue (innerString2 in result) self.assertTrue (innerString3 in result) self.assertTrue (innerString4 in result) self.assertTrue (innerString5 in result) self.assertTrue (innerString6 in result) self.assertTrue (innerString7 in result) self.assertTrue (innerString8 in result) def testDefaultStyleFile (self): Attachment(self.testPage).attach ([os.path.join (self.samplefilesPath, u"source_utf8.py")]) text = u'(:source lang="python" tabwidth=4 file="source_utf8.py":){0}(:sourceend:)'.format (self.pythonSource) self.testPage.content = text generator = HtmlGenerator (self.testPage) result = generator.makeHtml (Style().getPageStyle (self.testPage)) innerString1 = u".highlight-default .c" innerString2 = u".highlight-default .c { color: #408080; font-style: italic } /* Comment */" self.assertTrue (innerString1 in result) self.assertTrue (innerString2 in result) def testDefaultInvalidStyleFile (self): Attachment(self.testPage).attach ([os.path.join (self.samplefilesPath, u"source_utf8.py")]) text = u'(:source lang="python" tabwidth=4 file="source_utf8.py":){0}(:sourceend:)'.format (self.pythonSource) self.testPage.content = text self.config.defaultStyle.value = "invalid_blablabla" generator = HtmlGenerator (self.testPage) result = generator.makeHtml (Style().getPageStyle (self.testPage)) innerString1 = u".highlight-default .c" innerString2 = u".highlight-default .c { color: #408080; font-style: italic } /* Comment */" self.assertTrue (innerString1 in result) self.assertTrue (innerString2 in result) def testDefaultEmptyStyleFile (self): Attachment(self.testPage).attach ([os.path.join (self.samplefilesPath, u"source_utf8.py")]) text = u'(:source lang="python" tabwidth=4 file="source_utf8.py":){0}(:sourceend:)'.format (self.pythonSource) self.testPage.content = text self.config.defaultStyle.value = "" generator = HtmlGenerator (self.testPage) result = generator.makeHtml (Style().getPageStyle (self.testPage)) innerString1 = u".highlight-default .c" innerString2 = u".highlight-default .c { color: #408080; font-style: italic } /* Comment */" self.assertTrue (innerString1 in result) self.assertTrue (innerString2 in result) def testDefaultStyleVimFile (self): text = u'(:source lang="python" tabwidth=4:){0}(:sourceend:)'.format (self.pythonSource) self.testPage.content = text self.config.defaultStyle.value = "vim" generator = HtmlGenerator (self.testPage) result = generator.makeHtml (Style().getPageStyle (self.testPage)) innerString1 = u".highlight-vim .c" innerString2 = u".highlight-vim .c { color: #000080 } /* Comment */" self.assertTrue (innerString1 in result) self.assertTrue (innerString2 in result) def testParentBg1 (self): text = u'(:source lang="python" tabwidth=4:){0}(:sourceend:)'.format (self.pythonSource) self.testPage.content = text self.config.defaultStyle.value = "vim" generator = HtmlGenerator (self.testPage) result = generator.makeHtml (Style().getPageStyle (self.testPage)) innerString1 = u".highlight-vim pre {padding: 0px; border: none; color: inherit; background-color: inherit; margin:0px; }" innerString2 = u".highlight-vim {color: inherit; background-color: inherit }" self.assertTrue (innerString1 in result) self.assertTrue (innerString2 not in result) def testParentBg2 (self): text = u'(:source lang="python" tabwidth=4 parentbg:){0}(:sourceend:)'.format (self.pythonSource) self.testPage.content = text self.config.defaultStyle.value = "vim" generator = HtmlGenerator (self.testPage) result = generator.makeHtml (Style().getPageStyle (self.testPage)) innerString1 = u".highlight-vim-parentbg pre {padding: 0px; border: none; color: inherit; background-color: inherit; margin:0px; }" innerString2 = u".highlight-vim-parentbg {color: inherit; background-color: inherit }" innerString3 = u'<div class="highlight-vim-parentbg">' innerString4 = u".highlight-vim {color: inherit; background-color: inherit }" innerString5 = u'<div class="highlight-vim">' self.assertTrue (innerString1 in result) self.assertTrue (innerString2 in result) self.assertTrue (innerString3 in result) self.assertTrue (innerString4 not in result) self.assertTrue (innerString5 not in result) def testParentBg3 (self): text = u'(:source lang="python" parentbg tabwidth=4:){0}(:sourceend:)'.format (self.pythonSource) self.testPage.content = text self.config.defaultStyle.value = "vim" generator = HtmlGenerator (self.testPage) result = generator.makeHtml (Style().getPageStyle (self.testPage)) innerString1 = u".highlight-vim-parentbg pre {padding: 0px; border: none; color: inherit; background-color: inherit; margin:0px; }" innerString2 = u".highlight-vim-parentbg {color: inherit; background-color: inherit }" innerString3 = u'<div class="highlight-vim-parentbg">' innerString4 = u".highlight-vim {color: inherit; background-color: inherit }" innerString5 = u'<div class="highlight-vim">' self.assertTrue (innerString1 in result) self.assertTrue (innerString2 in result) self.assertTrue (innerString3 in result) self.assertTrue (innerString4 not in result) self.assertTrue (innerString5 not in result) def testParentBg4 (self): text = u'''(:source lang="python" tabwidth=4:){0}(:sourceend:) (:source lang="python" tabwidth=4 parentbg:){0}(:sourceend:)'''.format (self.pythonSource) self.testPage.content = text self.config.defaultStyle.value = "vim" generator = HtmlGenerator (self.testPage) result = generator.makeHtml (Style().getPageStyle (self.testPage)) innerString1 = u".highlight-vim-parentbg pre {padding: 0px; border: none; color: inherit; background-color: inherit; margin:0px; }" innerString2 = u".highlight-vim-parentbg {color: inherit; background-color: inherit }" innerString3 = u'<div class="highlight-vim-parentbg">' innerString4 = u".highlight-vim {color: inherit; background-color: inherit }" innerString5 = u'<div class="highlight-vim">' self.assertTrue (innerString1 in result) self.assertTrue (innerString2 in result) self.assertTrue (innerString3 in result) self.assertTrue (innerString4 not in result) self.assertTrue (innerString5 in result)
class ChangePageUidTest(BaseMainWndTest): """Тесты плагина ChangePageUid""" def setUp(self): BaseMainWndTest.setUp(self) self.filesPath = u"../test/samplefiles/" self.__createWiki() dirlist = [u"../plugins/changepageuid"] self._loader = PluginsLoader(Application) self._loader.load(dirlist) from changepageuid.dialog import ChangeUidDialog self._dlg = ChangeUidDialog(Application.mainWindow) Tester.dialogTester.clear() self.testPage = self.wikiroot[u"Страница 1"] def tearDown(self): Application.wikiroot = None removeDir(self.path) self._dlg.Destroy() self._loader.clear() BaseMainWndTest.tearDown(self) def __createWiki(self): WikiPageFactory().create(self.wikiroot, u"Страница 1", []) WikiPageFactory().create(self.wikiroot, u"Страница 2", []) def testPluginLoad(self): self.assertEqual(len(self._loader), 1) def testDestroy(self): Application.wikiroot = None self._loader.clear() def testUidDefault(self): self._createDialogController() uid = Application.pageUidDepot.createUid(self.testPage) self.assertEqual(self._dlg.uid, uid) def testUid_01(self): controller = self._createDialogController() uid = Application.pageUidDepot.createUid(self.testPage) # Не изменяем свой идентификатора self.assertEqual(len(controller.validate(uid)), 0) def testUid_02(self): controller = self._createDialogController() uid = Application.pageUidDepot.createUid(self.wikiroot[u"Страница 2"]) # Такой идентификатор уже есть self.assertNotEqual(len(controller.validate(uid)), 0) def testUid_03(self): controller = self._createDialogController() self.assertEqual(len(controller.validate(u"asdfsdfasdf_124323")), 0) self.assertEqual(len(controller.validate(u"__Абырвалг")), 0) self.assertNotEqual(len(controller.validate(u"adfadf/")), 0) self.assertNotEqual(len(controller.validate(u"adfadf asdfasdf")), 0) def _createDialogController(self): from changepageuid.dialogcontroller import DialogController return DialogController(Application, self._dlg, self.testPage)
class SnippetsLoaderTest(unittest.TestCase, BaseOutWikerGUIMixin): def setUp(self): self.initApplication() dirlist = ["../plugins/snippets"] self.loader = PluginsLoader(Application) self.loader.load(dirlist) self._dir_snippets = mkdtemp('outwiker_snippets') def tearDown(self): self.loader.clear() removeDir(self._dir_snippets) self.destroyApplication() def _create(self, fname): with open(fname, 'w'): pass def test_empty_01(self): from snippets.snippetsloader import SnippetsLoader loader = SnippetsLoader(self._dir_snippets) snippets = loader.getSnippets() self.assertEqual(snippets.name, os.path.basename(self._dir_snippets)) self.assertEqual(len(snippets), 0) self.assertEqual(snippets.dirs, []) self.assertEqual(snippets.snippets, []) def test_empty_02_invalid(self): from snippets.snippetsloader import SnippetsLoader loader = SnippetsLoader('Invalid dir') snippets = loader.getSnippets() self.assertEqual(snippets.name, 'Invalid dir') self.assertEqual(len(snippets), 0) self.assertEqual(snippets.dirs, []) self.assertEqual(snippets.snippets, []) def test_snippets_01(self): from snippets.snippetsloader import SnippetsLoader files = ['Шаблон'] for fname in files: self._create(os.path.join(self._dir_snippets, fname)) loader = SnippetsLoader(self._dir_snippets) snippets = loader.getSnippets() self.assertEqual(snippets.dirs, []) self.assertEqual(snippets.snippets, [os.path.join(self._dir_snippets, 'Шаблон')]) self.assertEqual(len(snippets), 1) def test_snippets_02(self): from snippets.snippetsloader import SnippetsLoader files = ['Шаблон 01', 'Шаблон 02', 'Шаблон 03.txt'] for fname in files: self._create(os.path.join(self._dir_snippets, fname)) loader = SnippetsLoader(self._dir_snippets) snippets = loader.getSnippets() self.assertEqual(snippets.dirs, []) self.assertIn( os.path.join(self._dir_snippets, 'Шаблон 01'), snippets.snippets) self.assertIn( os.path.join(self._dir_snippets, 'Шаблон 02'), snippets.snippets) self.assertIn( os.path.join(self._dir_snippets, 'Шаблон 03.txt'), snippets.snippets) self.assertEqual(len(snippets), 3) def test_subdir_01(self): from snippets.snippetsloader import SnippetsLoader subdir = os.path.join(self._dir_snippets, 'Поддиректория 01') os.mkdir(subdir) loader = SnippetsLoader(self._dir_snippets) snippets = loader.getSnippets() self.assertEqual(len(snippets.dirs), 1) subdir = snippets.dirs[0] self.assertEqual(len(subdir), 0) self.assertEqual(subdir.name, 'Поддиректория 01') def test_subdir_02(self): from snippets.snippetsloader import SnippetsLoader subdir_1 = os.path.join(self._dir_snippets, 'Поддиректория 01') subdir_2 = os.path.join(self._dir_snippets, 'Поддиректория 02') os.mkdir(subdir_1) os.mkdir(subdir_2) loader = SnippetsLoader(self._dir_snippets) snippets = loader.getSnippets() self.assertEqual(len(snippets), 2) self.assertEqual(len(snippets.dirs), 2) self.assertEqual(len(snippets.dirs[0]), 0) self.assertEqual(len(snippets.dirs[1]), 0) def test_subdir_03(self): from snippets.snippetsloader import SnippetsLoader subdir_1 = os.path.join(self._dir_snippets, 'Поддиректория 01') subdir_2 = os.path.join(subdir_1, 'Поддиректория 02') os.mkdir(subdir_1) os.mkdir(subdir_2) loader = SnippetsLoader(self._dir_snippets) snippets = loader.getSnippets() self.assertEqual(len(snippets), 1) self.assertEqual(len(snippets.dirs), 1) self.assertEqual(len(snippets.dirs[0]), 1) self.assertEqual(len(snippets.dirs[0].dirs[0]), 0) def test_full_01(self): from snippets.snippetsloader import SnippetsLoader subdir_1 = os.path.join(self._dir_snippets, 'Поддиректория 01') subdir_2 = os.path.join(subdir_1, 'Поддиректория 02') os.mkdir(subdir_1) os.mkdir(subdir_2) files = [os.path.join(self._dir_snippets, 'root_01'), os.path.join(self._dir_snippets, 'root_02'), os.path.join(subdir_1, 'dir_01_01'), os.path.join(subdir_1, 'dir_01_02'), os.path.join(subdir_2, 'dir_02_01'), os.path.join(subdir_2, 'dir_02_02'), ] list([self._create(fname) for fname in files]) loader = SnippetsLoader(self._dir_snippets) snippets = loader.getSnippets() self.assertEqual(len(snippets.snippets), 2) self.assertEqual(len(snippets.dirs), 1) self.assertEqual(len(snippets), 3) self.assertEqual(len(snippets.dirs[0].snippets), 2) self.assertEqual(len(snippets.dirs[0].dirs), 1) self.assertEqual(len(snippets.dirs[0]), 3) self.assertEqual(len(snippets.dirs[0].dirs[0].snippets), 2) self.assertEqual(len(snippets.dirs[0].dirs[0].dirs), 0) self.assertEqual(len(snippets.dirs[0].dirs[0]), 2)
class TOC_GeneratorTest (unittest.TestCase): """Тесты плагина TableOfContents""" def setUp (self): dirlist = [u"../plugins/tableofcontents"] self.loader = PluginsLoader(Application) self.loader.load (dirlist) def tearDown (self): self.loader.clear() def testEmpty (self): from tableofcontents.tocwikigenerator import TOCWikiGenerator generator = TOCWikiGenerator(Application.config) items = [] result = generator.make (items) result_valid = u'''''' self.assertEqual (result, result_valid) def testToc_01 (self): from tableofcontents.contentsparser import Section from tableofcontents.tocwikigenerator import TOCWikiGenerator generator = TOCWikiGenerator(Application.config) items = [Section (u"Абырвалг 123", 1, u"")] result = generator.make (items) result_valid = u'''* Абырвалг 123''' self.assertEqual (result, result_valid) def testToc_02 (self): from tableofcontents.contentsparser import Section from tableofcontents.tocwikigenerator import TOCWikiGenerator generator = TOCWikiGenerator(Application.config) items = [ Section (u"Абырвалг 123", 1, u""), Section (u"Абырвалг 12345", 1, u""), ] result = generator.make (items) result_valid = u'''* Абырвалг 123 * Абырвалг 12345''' self.assertEqual (result, result_valid) def testToc_03 (self): from tableofcontents.contentsparser import Section from tableofcontents.tocwikigenerator import TOCWikiGenerator generator = TOCWikiGenerator(Application.config) items = [ Section (u"Абырвалг 123", 1, u""), Section (u"Абырвалг 12345", 2, u""), ] result = generator.make (items) result_valid = u'''* Абырвалг 123 ** Абырвалг 12345''' self.assertEqual (result, result_valid) def testToc_04 (self): from tableofcontents.contentsparser import Section from tableofcontents.tocwikigenerator import TOCWikiGenerator generator = TOCWikiGenerator(Application.config) items = [ Section (u"Абырвалг 123", 1, u""), Section (u"Абырвалг 12345", 5, u""), ] result = generator.make (items) result_valid = u'''* Абырвалг 123 ***** Абырвалг 12345''' self.assertEqual (result, result_valid) def testToc_05 (self): from tableofcontents.contentsparser import Section from tableofcontents.tocwikigenerator import TOCWikiGenerator generator = TOCWikiGenerator(Application.config) items = [ Section (u"Абырвалг 1", 1, u""), Section (u"Абырвалг 2", 2, u""), Section (u"Абырвалг 3", 3, u""), Section (u"Абырвалг 1", 1, u""), ] result = generator.make (items) result_valid = u'''* Абырвалг 1 ** Абырвалг 2 *** Абырвалг 3 * Абырвалг 1''' self.assertEqual (result, result_valid) def testToc_06 (self): from tableofcontents.contentsparser import Section from tableofcontents.tocwikigenerator import TOCWikiGenerator generator = TOCWikiGenerator(Application.config) items = [ Section (u"Абырвалг 123", 2, u""), Section (u"Абырвалг 12345", 3, u""), ] result = generator.make (items) result_valid = u'''* Абырвалг 123 ** Абырвалг 12345''' self.assertEqual (result, result_valid) def testToc_07 (self): from tableofcontents.contentsparser import Section from tableofcontents.tocwikigenerator import TOCWikiGenerator generator = TOCWikiGenerator(Application.config) items = [ Section (u"Абырвалг 123", 5, u""), Section (u"Абырвалг 12345", 5, u""), ] result = generator.make (items) result_valid = u'''* Абырвалг 123 * Абырвалг 12345''' self.assertEqual (result, result_valid) def testAnchors_01 (self): from tableofcontents.contentsparser import Section from tableofcontents.tocwikigenerator import TOCWikiGenerator WikiConfig (Application.config).linkStyleOptions.value = 0 generator = TOCWikiGenerator(Application.config) items = [ Section (u"Абырвалг 1", 1, u"якорь1"), Section (u"Абырвалг 2", 2, u"якорь2"), ] result = generator.make (items) result_valid = u'''* [[Абырвалг 1 -> #якорь1]] ** [[Абырвалг 2 -> #якорь2]]''' self.assertEqual (result, result_valid) def testAnchors_02 (self): from tableofcontents.contentsparser import Section from tableofcontents.tocwikigenerator import TOCWikiGenerator WikiConfig (Application.config).linkStyleOptions.value = 1 generator = TOCWikiGenerator(Application.config) items = [ Section (u"Абырвалг 1", 1, u"якорь1"), Section (u"Абырвалг 2", 2, u"якорь2"), ] result = generator.make (items) result_valid = u'''* [[#якорь1 | Абырвалг 1]] ** [[#якорь2 | Абырвалг 2]]''' self.assertEqual (result, result_valid) def testAnchors_03 (self): from tableofcontents.contentsparser import Section from tableofcontents.tocwikigenerator import TOCWikiGenerator WikiConfig (Application.config).linkStyleOptions.value = 2 generator = TOCWikiGenerator(Application.config) items = [ Section (u"Абырвалг 1", 1, u"якорь1"), Section (u"Абырвалг 2", 2, u"якорь2"), ] result = generator.make (items) result_valid = u'''* [[Абырвалг 1 -> #якорь1]] ** [[Абырвалг 2 -> #якорь2]]''' self.assertEqual (result, result_valid)
class HtmlHeadsTest (unittest.TestCase): def setUp(self): self.maxDiff = None self.filesPath = u"../test/samplefiles/" self.__createWiki() self.testPage = self.wikiroot[u"Страница 1"] dirlist = [u"../plugins/htmlheads"] self.loader = PluginsLoader(Application) self.loader.load(dirlist) self.factory = ParserFactory() self.parser = self.factory.make (self.testPage, Application.config) def __createWiki (self): # Здесь будет создаваться вики self.path = mkdtemp (prefix=u'Абырвалг абыр') self.wikiroot = WikiDocument.create (self.path) WikiPageFactory().create (self.wikiroot, u"Страница 1", []) def tearDown(self): removeDir (self.path) self.loader.clear() def testPluginLoad (self): self.assertEqual (len (self.loader), 1) def testTitle_01 (self): text = u'(:title Бла-бла-бла:)' self.testPage.content = text generator = HtmlGenerator (self.testPage) result = generator.makeHtml (Style().getPageStyle (self.testPage)) self.assertIn (u"<title>Бла-бла-бла</title>", result) def testTitle_02 (self): text = u'(:title Бла-бла-бла бла-бла :)' self.testPage.content = text generator = HtmlGenerator (self.testPage) result = generator.makeHtml (Style().getPageStyle (self.testPage)) self.assertIn (u"<title>Бла-бла-бла бла-бла</title>", result) def testDescription_01 (self): text = u'(:description Бла-бла-бла абырвалг:)' self.testPage.content = text generator = HtmlGenerator (self.testPage) result = generator.makeHtml (Style().getPageStyle (self.testPage)) self.assertIn (u'<meta name="description" content="Бла-бла-бла абырвалг"/>', result) def testDescription_02 (self): text = u'(:description Бла-бла-бла абырвалг :)' self.testPage.content = text generator = HtmlGenerator (self.testPage) result = generator.makeHtml (Style().getPageStyle (self.testPage)) self.assertIn (u'<meta name="description" content="Бла-бла-бла абырвалг"/>', result) def testDescription_03 (self): text = u'(:description:)' self.testPage.content = text generator = HtmlGenerator (self.testPage) result = generator.makeHtml (Style().getPageStyle (self.testPage)) self.assertIn (u'<meta name="description" content=""/>', result) def testKeywords_01 (self): text = u'(:keywords Бла-бла-бла, абырвалг:)' self.testPage.content = text generator = HtmlGenerator (self.testPage) result = generator.makeHtml (Style().getPageStyle (self.testPage)) self.assertIn (u'<meta name="keywords" content="Бла-бла-бла, абырвалг"/>', result) def testKeywords_02 (self): text = u'(:keywords Бла-бла-бла, абырвалг :)' self.testPage.content = text generator = HtmlGenerator (self.testPage) result = generator.makeHtml (Style().getPageStyle (self.testPage)) self.assertIn (u'<meta name="keywords" content="Бла-бла-бла, абырвалг"/>', result) def testKeywords_03 (self): text = u'(:keywords:)' self.testPage.content = text generator = HtmlGenerator (self.testPage) result = generator.makeHtml (Style().getPageStyle (self.testPage)) self.assertIn (u'<meta name="keywords" content=""/>', result) def testHtmlHead_01 (self): text = u'''(:htmlhead:)<meta name="keywords" content="Бла-бла-бла, абырвалг"/>(:htmlheadend:)''' self.testPage.content = text generator = HtmlGenerator (self.testPage) result = generator.makeHtml (Style().getPageStyle (self.testPage)) self.assertIn (u'<meta name="keywords" content="Бла-бла-бла, абырвалг"/>', result) self.assertNotIn ("(:htmlhead:)", result) def testHtmlHead_02 (self): text = u'''(:htmlhead:) <meta name="keywords" content="Бла-бла-бла, абырвалг"/> <meta name="description" content="Бла-бла-бла абырвалг"/> (:htmlheadend:)''' self.testPage.content = text generator = HtmlGenerator (self.testPage) result = generator.makeHtml (Style().getPageStyle (self.testPage)) self.assertIn (u'<meta name="keywords" content="Бла-бла-бла, абырвалг"/>', result) self.assertIn (u'<meta name="description" content="Бла-бла-бла абырвалг"/>', result) self.assertNotIn ("(:htmlhead:)", result) def testHtmlHead_03 (self): text = u'''(:htmlhead:)(:htmlheadend:)''' self.testPage.content = text generator = HtmlGenerator (self.testPage) result = generator.makeHtml (Style().getPageStyle (self.testPage)) self.assertNotIn ("(:htmlhead:)", result)
class InsertDiagramTest (unittest.TestCase): def setUp(self): dirlist = [u"../plugins/diagrammer"] self.loader = PluginsLoader(Application) self.loader.load (dirlist) from diagrammer.gui.insertdiagramdialog import ( InsertDiagramDialog, InsertDiagramController ) self._dlg = InsertDiagramDialog(None) self._controller = InsertDiagramController (self._dlg) Tester.dialogTester.clear() def tearDown(self): self._dlg.Destroy() self.loader.clear() def testDefault (self): Tester.dialogTester.appendOk() begin, end = self._controller.getResult () self.assertEqual (begin, u"(:diagram:)\n") self.assertEqual (end, u"\n(:diagramend:)") def testShape_01 (self): Tester.dialogTester.appendOk() self._dlg.setShapeSelection (0) begin, end = self._controller.getResult () valid_begin = u'''(:diagram:) default_shape = actor; ''' self.assertEqual (begin, valid_begin) self.assertEqual (end, u"\n(:diagramend:)") def testShape_02 (self): Tester.dialogTester.appendOk() self._dlg.setShapeSelection (1) begin, end = self._controller.getResult () valid_begin = u'''(:diagram:) default_shape = beginpoint; ''' self.assertEqual (begin, valid_begin) self.assertEqual (end, u"\n(:diagramend:)") def testShape_03 (self): Tester.dialogTester.appendOk() # Значение по умолчанию self._dlg.setShapeSelection (2) begin, end = self._controller.getResult () self.assertEqual (begin, u"(:diagram:)\n") self.assertEqual (end, u"\n(:diagramend:)") def testNodeColor_01 (self): Tester.dialogTester.appendOk() self._dlg.isBackColorChanged = True self._dlg.backColor = u"white" begin, end = self._controller.getResult () valid_begin = u'''(:diagram:) default_node_color = "white"; ''' self.assertEqual (begin, valid_begin) self.assertEqual (end, u'\n(:diagramend:)') def testNodeColor_02 (self): Tester.dialogTester.appendOk() self._dlg.isBackColorChanged = False self._dlg.backColor = u"black" begin, end = self._controller.getResult () self.assertEqual (begin, u'(:diagram:)\n') self.assertEqual (end, u'\n(:diagramend:)') def testNodeColor_03 (self): Tester.dialogTester.appendOk() self._dlg.isBackColorChanged = True self._dlg.backColor = u"#AAAAAA" begin, end = self._controller.getResult () valid_begin = u'''(:diagram:) default_node_color = "#AAAAAA"; ''' self.assertEqual (begin, valid_begin) self.assertEqual (end, u'\n(:diagramend:)') def testNodeColor_04 (self): Tester.dialogTester.appendOk() self._dlg.isBackColorChanged = True self._dlg.backColor = u"#AAAAAA" self._dlg.setShapeSelection (0) begin, end = self._controller.getResult () valid_begin = u'''(:diagram:) default_shape = actor; default_node_color = "#AAAAAA"; ''' self.assertEqual (begin, valid_begin) self.assertEqual (end, u'\n(:diagramend:)') def testTextColor_01 (self): Tester.dialogTester.appendOk() self._dlg.isTextColorChanged = True self._dlg.textColor = u"white" begin, end = self._controller.getResult () valid_begin = u'''(:diagram:) default_textcolor = "white"; ''' self.assertEqual (begin, valid_begin) self.assertEqual (end, u'\n(:diagramend:)') def testTextColor_02 (self): Tester.dialogTester.appendOk() self._dlg.isTextColorChanged = False self._dlg.textColor = u"black" begin, end = self._controller.getResult () self.assertEqual (begin, u'(:diagram:)\n') self.assertEqual (end, u'\n(:diagramend:)') def testTextColor_03 (self): Tester.dialogTester.appendOk() self._dlg.isTextColorChanged = True self._dlg.textColor = u"#AAAAAA" begin, end = self._controller.getResult () valid_begin = u'''(:diagram:) default_textcolor = "#AAAAAA"; ''' self.assertEqual (begin, valid_begin) self.assertEqual (end, u'\n(:diagramend:)') def testTextColor_04 (self): Tester.dialogTester.appendOk() self._dlg.isTextColorChanged = True self._dlg.textColor = u"#AAAAAA" self._dlg.setShapeSelection (0) begin, end = self._controller.getResult () valid_begin = u'''(:diagram:) default_shape = actor; default_textcolor = "#AAAAAA"; ''' self.assertEqual (begin, valid_begin) self.assertEqual (end, u'\n(:diagramend:)') def testFontSize_01 (self): Tester.dialogTester.appendOk() self._dlg.isFontSizeChanged = True self._dlg.fontSize = 20 begin, end = self._controller.getResult () valid_begin = u'''(:diagram:) default_fontsize = 20; ''' self.assertEqual (begin, valid_begin) self.assertEqual (end, u'\n(:diagramend:)') def testFontSize_02 (self): Tester.dialogTester.appendOk() self._dlg.isFontSizeChanged = False self._dlg.fontSize = 20 begin, end = self._controller.getResult () valid_begin = u'''(:diagram:) ''' self.assertEqual (begin, valid_begin) self.assertEqual (end, u'\n(:diagramend:)') def testFontSize_03 (self): Tester.dialogTester.appendOk() self._dlg.setShapeSelection (0) self._dlg.isFontSizeChanged = True self._dlg.fontSize = 20 begin, end = self._controller.getResult () valid_begin = u'''(:diagram:) default_shape = actor; default_fontsize = 20; ''' self.assertEqual (begin, valid_begin) self.assertEqual (end, u'\n(:diagramend:)') def testWidth_01 (self): Tester.dialogTester.appendOk() self._dlg.isWidthChanged = True self._dlg.width = 200 begin, end = self._controller.getResult () valid_begin = u'''(:diagram:) node_width = 200; ''' self.assertEqual (begin, valid_begin) self.assertEqual (end, u'\n(:diagramend:)') def testWidth_02 (self): Tester.dialogTester.appendOk() self._dlg.isWidthChanged = False self._dlg.width = 200 begin, end = self._controller.getResult () valid_begin = u'''(:diagram:) ''' self.assertEqual (begin, valid_begin) self.assertEqual (end, u'\n(:diagramend:)') def testWidth_03 (self): Tester.dialogTester.appendOk() self._dlg.setShapeSelection (0) self._dlg.isWidthChanged = True self._dlg.width = 200 begin, end = self._controller.getResult () valid_begin = u'''(:diagram:) default_shape = actor; node_width = 200; ''' self.assertEqual (begin, valid_begin) self.assertEqual (end, u'\n(:diagramend:)') def testHeight_01 (self): Tester.dialogTester.appendOk() self._dlg.isHeightChanged = True self._dlg.height = 200 begin, end = self._controller.getResult () valid_begin = u'''(:diagram:) node_height = 200; ''' self.assertEqual (begin, valid_begin) self.assertEqual (end, u'\n(:diagramend:)') def testHeight_02 (self): Tester.dialogTester.appendOk() self._dlg.isHeightChanged = False self._dlg.height = 200 begin, end = self._controller.getResult () valid_begin = u'''(:diagram:) ''' self.assertEqual (begin, valid_begin) self.assertEqual (end, u'\n(:diagramend:)') def testHeight_03 (self): Tester.dialogTester.appendOk() self._dlg.setShapeSelection (0) self._dlg.isHeightChanged = True self._dlg.height = 200 begin, end = self._controller.getResult () valid_begin = u'''(:diagram:) default_shape = actor; node_height = 200; ''' self.assertEqual (begin, valid_begin) self.assertEqual (end, u'\n(:diagramend:)') def testOrientation_01 (self): self._dlg.orientationIndex = 0 Tester.dialogTester.appendOk() begin, end = self._controller.getResult () valid_begin = u'''(:diagram:) ''' self.assertEqual (begin, valid_begin) self.assertEqual (end, u'\n(:diagramend:)') def testOrientation_02 (self): self._dlg.orientationIndex = 1 Tester.dialogTester.appendOk() begin, end = self._controller.getResult () valid_begin = u'''(:diagram:) orientation = portrait; ''' self.assertEqual (begin, valid_begin) self.assertEqual (end, u'\n(:diagramend:)') def testOrientation_03 (self): self._dlg.orientationIndex = 1 self._dlg.setShapeSelection (0) Tester.dialogTester.appendOk() begin, end = self._controller.getResult () valid_begin = u'''(:diagram:) orientation = portrait; default_shape = actor; ''' self.assertEqual (begin, valid_begin) self.assertEqual (end, u'\n(:diagramend:)') def testSpanWidth_01 (self): Tester.dialogTester.appendOk() self._dlg.isSpanWidthChanged = True self._dlg.spanWidth = 200 begin, end = self._controller.getResult () valid_begin = u'''(:diagram:) span_width = 200; ''' self.assertEqual (begin, valid_begin) self.assertEqual (end, u'\n(:diagramend:)') def testSpanWidth_02 (self): Tester.dialogTester.appendOk() self._dlg.isSpanWidthChanged = False self._dlg.spanWidth = 200 begin, end = self._controller.getResult () valid_begin = u'''(:diagram:) ''' self.assertEqual (begin, valid_begin) self.assertEqual (end, u'\n(:diagramend:)') def testSpanWidth_03 (self): Tester.dialogTester.appendOk() self._dlg.setShapeSelection (0) self._dlg.isSpanWidthChanged = True self._dlg.spanWidth = 200 begin, end = self._controller.getResult () valid_begin = u'''(:diagram:) default_shape = actor; span_width = 200; ''' self.assertEqual (begin, valid_begin) self.assertEqual (end, u'\n(:diagramend:)') def testSpanHeight_01 (self): Tester.dialogTester.appendOk() self._dlg.isSpanHeightChanged = True self._dlg.spanHeight = 200 begin, end = self._controller.getResult () valid_begin = u'''(:diagram:) span_height = 200; ''' self.assertEqual (begin, valid_begin) self.assertEqual (end, u'\n(:diagramend:)') def testSpanHeight_02 (self): Tester.dialogTester.appendOk() self._dlg.isSpanHeightChanged = False self._dlg.spanHeight = 200 begin, end = self._controller.getResult () valid_begin = u'''(:diagram:) ''' self.assertEqual (begin, valid_begin) self.assertEqual (end, u'\n(:diagramend:)') def testSpanHeight_03 (self): Tester.dialogTester.appendOk() self._dlg.setShapeSelection (0) self._dlg.isSpanHeightChanged = True self._dlg.spanHeight = 200 begin, end = self._controller.getResult () valid_begin = u'''(:diagram:) default_shape = actor; span_height = 200; ''' self.assertEqual (begin, valid_begin) self.assertEqual (end, u'\n(:diagramend:)')