def testCreateDate_02(self): page = TextPageFactory().create(self.wikiroot, "Страница 1", []) time.sleep(0.1) page.content = "Абырвалг" self.assertNotEqual(page.datetime, page.creationdatetime)
def testLoadingOldVersion2(self): """ Тест на чтение вики старой версии, когда еще не было параметра order """ TextPageFactory().create(self.wikiroot, "Страница 1", []) TextPageFactory().create(self.wikiroot, "Страница 0", []) TextPageFactory().create(self.wikiroot, "Страница 3", []) TextPageFactory().create(self.wikiroot, "Страница 2", []) # Удалим параметры order IntegerOption(self.wikiroot["Страница 0"].params, PageConfig.sectionName, PageConfig.orderParamName, -1).remove_option() IntegerOption(self.wikiroot["Страница 1"].params, PageConfig.sectionName, PageConfig.orderParamName, -1).remove_option() IntegerOption(self.wikiroot["Страница 2"].params, PageConfig.sectionName, PageConfig.orderParamName, -1).remove_option() IntegerOption(self.wikiroot["Страница 3"].params, PageConfig.sectionName, PageConfig.orderParamName, -1).remove_option() wikiroot = WikiDocument.load(self.path) self.assertEqual(wikiroot["Страница 0"].order, 0) self.assertEqual(wikiroot["Страница 1"].order, 1) self.assertEqual(wikiroot["Страница 2"].order, 2) self.assertEqual(wikiroot["Страница 3"].order, 3)
def testReloading(self): attach = Attachment(self.page) attach.attach(self.fullFilesPath) self.wikiroot.selectedPage = self.page Application.wikiroot = self.wikiroot self.assertEqual(self.wnd.attachPanel.panel.attachList.GetItemCount(), len(self.fullFilesPath)) # Создадим другую независимую вики newpath = mkdtemp(prefix=u'Абыр Абырвалг') newwikiroot = WikiDocument.create(newpath) TextPageFactory().create(newwikiroot, u"Новая страница 1", []) TextPageFactory().create(newwikiroot, u"Новая страница 2", []) filesPath = u"../test/samplefiles/" newfiles = [u"accept.png", u"add.png", u"anchor.png"] newfullFilesPath = [ os.path.join(filesPath, fname) for fname in newfiles ] newattach = Attachment(newwikiroot[u"Новая страница 1"]) newattach.attach(newfullFilesPath) newwikiroot.selectedPage = newwikiroot[u"Новая страница 1"] Application.wikiroot = newwikiroot self.assertEqual(self.wnd.attachPanel.panel.attachList.GetItemCount(), len(newfullFilesPath)) Application.wikiroot.selectedPage = None Application.wikiroot = None removeDir(newpath)
def testPageSelectLoad(self): Application.onPageSelect += self.pageSelect removeDir(self.path) rootwiki = WikiDocument.create(self.path) TextPageFactory().create(rootwiki, u"Страница 1", []) TextPageFactory().create(rootwiki, u"Страница 2", []) TextPageFactory().create(rootwiki[u"Страница 2"], u"Страница 3", []) document = WikiDocument.load(self.path) Application.wikiroot = document self.assertEqual(document.selectedPage, None) document.selectedPage = document[u"Страница 1"] self.assertEqual(document.selectedPage, document[u"Страница 1"]) self.assertEqual(self.isPageSelect, True) self.assertEqual(self.pageSelectSender, document[u"Страница 1"]) self.assertEqual(self.pageSelectCount, 1) document.selectedPage = document[u"Страница 2/Страница 3"] self.assertEqual(document.selectedPage, document[u"Страница 2/Страница 3"]) self.assertEqual(self.isPageSelect, True) self.assertEqual(self.pageSelectSender, document[u"Страница 2/Страница 3"]) self.assertEqual(self.pageSelectCount, 2) Application.onPageSelect -= self.pageSelect
def testUpdateIcon (self): """ Тест на срабатывание событий при обновлении иконки """ Application.onPageUpdate += self.pageUpdate Application.onTreeUpdate += self.treeUpdate removeWiki (self.path) self.assertFalse(self.isTreeUpdate) self.assertFalse(self.isPageUpdate) self.assertFalse(self.isPageCreate) # Создаем вики rootwiki = WikiDocument.create (self.path) TextPageFactory.create (rootwiki, u"Страница 1", []) Application.wikiroot = rootwiki # Изменим содержимое страницы rootwiki[u"Страница 1"].icon = "../test/images/feed.gif" self.assertTrue (self.isPageUpdate) self.assertEqual (self.pageUpdateSender, rootwiki[u"Страница 1"]) self.assertEqual (self.prev_kwargs["change"], PAGE_UPDATE_ICON) self.assertFalse (self.isTreeUpdate) Application.onPageUpdate -= self.pageUpdate Application.onTreeUpdate -= self.treeUpdate
def setUp(self): # Здесь будет создаваться вики self.path = u"../test/testwiki" removeWiki (self.path) self.eventcount = 0 self.rootwiki = WikiDocument.create (self.path) TextPageFactory.create (self.rootwiki, u"Страница 1", []) TextPageFactory.create (self.rootwiki, u"Страница 2", []) TextPageFactory.create (self.rootwiki[u"Страница 2"], u"Страница 3", []) TextPageFactory.create (self.rootwiki[u"Страница 2/Страница 3"], u"Страница 4", []) TextPageFactory.create (self.rootwiki[u"Страница 1"], u"Страница 5", []) self.rootwiki[u"Страница 1"].content = u"1234567" self.rootwiki[u"Страница 2/Страница 3"].content = u"Абырвалг" self.rootwiki[u"Страница 2/Страница 3/Страница 4"].content = u"Тарам-пам-пам" self.rootwiki[u"Страница 1/Страница 5"].content = u"111111" self.rootwiki[u"Страница 1"].tags = [u"метка 1"] self.rootwiki[u"Страница 2/Страница 3"].tags = [u"метка 2", u"метка 3"] self.rootwiki[u"Страница 2/Страница 3/Страница 4"].tags = [u"метка 1", u"метка 2", u"метка 4"] self.rootwiki[u"Страница 2/Страница 3/Страница 4"].icon = "../test/images/feed.gif" self.icons = ["../test/images/icon.gif", "../test/images/icon.png", "../test/images/icon.jpg", "../test/images/icon.ico"] Application.wikiroot = None
def setUp(self): # Здесь будет создаваться вики self.path = u"../test/testwiki" removeWiki (self.path) self.rootwiki = WikiDocument.create (self.path) TextPageFactory.create (self.rootwiki, u"page 1", [u"Метка 1", u"Метка 2"]) TextPageFactory.create (self.rootwiki, u"Страница 2", [u"Метка 1", u"Метка 3"]) TextPageFactory.create (self.rootwiki[u"Страница 2"], u"Страница 3", [u"Метка 2"]) TextPageFactory.create (self.rootwiki[u"Страница 2/Страница 3"], u"Страница 4", [u"Метка 1"]) TextPageFactory.create (self.rootwiki[u"page 1"], u"page 5", [u"Метка 4"]) self.rootwiki[u"page 1"].content = ur"1 декабря. (Перечеркнуто, поправлено) 1 января 1925 г. Фотографирован \ утром. Счастливо лает 'абыр', повторяя это слово громко и как бы радостно." self.rootwiki[u"page 1/page 5"].content = ur"Сегодня после того, как у него отвалился хвост, он произнес совершенно\ отчетливо слово 'пивная'" self.rootwiki[u"Страница 2"].content = ur"30 Декабря. Выпадение шерсти приняло характер общего облысения.\ Взвешивание дало неожиданный результат - 30 кг за счет роста (удлинение)\ костей. Пес по-прежнему лежит." self.rootwiki[u"Страница 2/Страница 3"].content = ur"29 Декабря. Внезапно обнаружено выпадение шерсти на лбу \ и на боках туловища." self.rootwiki[u"Страница 2/Страница 3/Страница 4"].content = ur"2 Января. Фотографирован во время улыбки при магнии. \
def testChildrenEmpty (self): factory = TextPageFactory() parent = factory.create (self.wikiroot, u"Родитель", []) Application.wikiroot = self.wikiroot Application.selectedPage = parent Application.actionController.getAction (SortChildAlphabeticalAction.stringId).run(None)
def testReloading (self): attach = Attachment (self.page) attach.attach (self.fullFilesPath) self.wikiroot.selectedPage = self.page Application.wikiroot = self.wikiroot self.assertEqual (self.wnd.attachPanel.panel.attachList.GetItemCount(), len (self.fullFilesPath)) # Создадим другую независимую вики newpath = u"../test/testwiki2" newwikiroot = WikiDocument.create (newpath) TextPageFactory.create (newwikiroot, u"Новая страница 1", []) TextPageFactory.create (newwikiroot, u"Новая страница 2", []) filesPath = u"../test/samplefiles/" newfiles = [u"accept.png", u"add.png", u"anchor.png"] newfullFilesPath = [os.path.join (filesPath, fname) for fname in newfiles] newattach = Attachment (newwikiroot[u"Новая страница 1"]) newattach.attach (newfullFilesPath) newwikiroot.selectedPage = newwikiroot[u"Новая страница 1"] Application.wikiroot = newwikiroot self.assertEqual (self.wnd.attachPanel.panel.attachList.GetItemCount(), len (newfullFilesPath)) Application.wikiroot.selectedPage = None Application.wikiroot = None removeWiki (newpath)
def testOrder1(self): tree = self._getTreeCtrl() self.application.wikiroot = self.wikiroot factory = TextPageFactory() factory.create(self.wikiroot, "Страница 1", []) factory.create(self.wikiroot, "Страница 2", []) factory.create(self.wikiroot["Страница 2"], "Страница 3", []) factory.create(self.wikiroot["Страница 2/Страница 3"], "Страница 4", []) factory.create(self.wikiroot["Страница 1"], "Страница 5", []) self.wikiroot["Страница 2"].order -= 1 rootitem = tree.GetRootItem() page2Item, cookie = tree.GetFirstChild(rootitem) self.assertEqual(tree.GetChildrenCount(page2Item, False), 1) self.assertEqual(tree.GetChildrenCount(page2Item, True), 1) self.assertEqual(tree.GetItemData(page2Item), self.wikiroot["Страница 2"]) self.assertEqual(tree.GetItemText(page2Item), "Страница 2") page3Item, cookie = tree.GetFirstChild(page2Item) self.assertEqual(tree.GetChildrenCount(page3Item, True), 0) self.assertEqual(tree.GetChildrenCount(page3Item, False), 0) self.assertEqual(tree.GetItemData(page3Item), self.wikiroot["Страница 2/Страница 3"]) self.assertEqual(tree.GetItemText(page3Item), "Страница 3")
def testOrder1 (self): tree = self._getTreeCtrl() Application.wikiroot = self.wikiroot TextPageFactory.create (self.wikiroot, u"Страница 1", []) TextPageFactory.create (self.wikiroot, u"Страница 2", []) TextPageFactory.create (self.wikiroot[u"Страница 2"], u"Страница 3", []) TextPageFactory.create (self.wikiroot[u"Страница 2/Страница 3"], u"Страница 4", []) TextPageFactory.create (self.wikiroot[u"Страница 1"], u"Страница 5", []) # print # print "testOrder1" self.wikiroot[u"Страница 2"].order -= 1 # tree.Update() # import time # time.sleep (5) rootitem = tree.GetRootItem() page2Item, cookie = tree.GetFirstChild (rootitem) self.assertEqual (tree.GetChildrenCount (page2Item, False), 1) self.assertEqual (tree.GetChildrenCount (page2Item, True), 1) self.assertEqual (tree.GetItemData(page2Item).GetData(), self.wikiroot[u"Страница 2"]) self.assertEqual (tree.GetItemText (page2Item), u"Страница 2") page3Item, cookie = tree.GetFirstChild (page2Item) self.assertEqual (tree.GetChildrenCount (page3Item, True), 0) self.assertEqual (tree.GetChildrenCount (page3Item, False), 0) self.assertEqual (tree.GetItemData(page3Item).GetData(), self.wikiroot[u"Страница 2/Страница 3"]) self.assertEqual (tree.GetItemText (page3Item), u"Страница 3")
def setUp (self): BaseMainWndTest.setUp (self) factory = TextPageFactory() factory.create (self.wikiroot, u"Страница 1", []) factory.create (self.wikiroot, u"Страница 2", []) factory.create (self.wikiroot[u"Страница 2"], u"Страница 3", [])
def testSelectedPage (self): tree = self._getTreeCtrl() rootitem = tree.GetRootItem() Application.wikiroot = self.wikiroot TextPageFactory.create (self.wikiroot, u"Страница 1", []) TextPageFactory.create (self.wikiroot, u"Страница 2", []) TextPageFactory.create (self.wikiroot[u"Страница 2"], u"Страница 3", []) TextPageFactory.create (self.wikiroot[u"Страница 2/Страница 3"], u"Страница 4", []) TextPageFactory.create (self.wikiroot[u"Страница 1"], u"Страница 5", []) #--- self.wikiroot.selectedPage = self.wikiroot[u"Страница 1"] selItem = tree.GetSelection() self.assertEqual (tree.GetItemData(selItem).GetData(), self.wikiroot.selectedPage) self.assertEqual (tree.GetItemData(selItem).GetData(), self.wikiroot[u"Страница 1"]) #--- self.wikiroot.selectedPage = self.wikiroot[u"Страница 2/Страница 3"] selItem = tree.GetSelection() self.assertEqual (tree.GetItemData(selItem).GetData(), self.wikiroot.selectedPage) self.assertEqual (tree.GetItemData(selItem).GetData(), self.wikiroot[u"Страница 2/Страница 3"])
def testRemovePage (self): tree = self._getTreeCtrl() Application.wikiroot = self.wikiroot TextPageFactory.create (self.wikiroot, u"Страница 1", []) TextPageFactory.create (self.wikiroot, u"Страница 2", []) TextPageFactory.create (self.wikiroot[u"Страница 2"], u"Страница 3", []) TextPageFactory.create (self.wikiroot[u"Страница 2/Страница 3"], u"Страница 4", []) TextPageFactory.create (self.wikiroot[u"Страница 1"], u"Страница 5", []) rootitem = tree.GetRootItem() self.assertEqual (tree.GetChildrenCount (rootitem, True), 5) self.assertEqual (tree.GetChildrenCount (rootitem, False), 2) self.wikiroot[u"Страница 2/Страница 3"].remove() newrootitem = tree.GetRootItem() self.assertEqual (tree.GetChildrenCount (newrootitem, True), 3) self.assertEqual (tree.GetChildrenCount (newrootitem, False), 2) self.wikiroot[u"Страница 2"].remove() newrootitem2 = tree.GetRootItem() self.assertEqual (tree.GetChildrenCount (newrootitem2, True), 2) self.assertEqual (tree.GetChildrenCount (newrootitem2, False), 1)
def testAddMorePages (self): tree = self._getTreeCtrl() Application.wikiroot = self.wikiroot TextPageFactory.create (self.wikiroot, u"Страница 1", []) TextPageFactory.create (self.wikiroot, u"Страница 2", []) TextPageFactory.create (self.wikiroot[u"Страница 2"], u"Страница 3", []) TextPageFactory.create (self.wikiroot[u"Страница 2/Страница 3"], u"Страница 4", []) TextPageFactory.create (self.wikiroot[u"Страница 1"], u"Страница 5", []) rootitem = tree.GetRootItem() self.assertEqual (tree.GetChildrenCount (rootitem, True), 5) self.assertEqual (tree.GetChildrenCount (rootitem, False), 2) firstItem, cookie = tree.GetFirstChild (rootitem) page2Item = tree.GetNextSibling (firstItem) self.assertEqual (tree.GetChildrenCount (page2Item, True), 2) self.assertEqual (tree.GetChildrenCount (page2Item, False), 1) self.assertEqual (tree.GetItemData(page2Item).GetData(), self.wikiroot[u"Страница 2"]) self.assertEqual (tree.GetItemText (page2Item), u"Страница 2") page3Item, cookie = tree.GetFirstChild (page2Item) self.assertEqual (tree.GetChildrenCount (page3Item, True), 1) self.assertEqual (tree.GetChildrenCount (page3Item, False), 1) self.assertEqual (tree.GetItemData(page3Item).GetData(), self.wikiroot[u"Страница 2/Страница 3"]) self.assertEqual (tree.GetItemText (page3Item), u"Страница 3")
def testCreateDate_02(self): page = TextPageFactory().create(self.wikiroot, u"Страница 1", []) time.sleep(0.1) page.content = u"Абырвалг" self.assertNotEqual(page.datetime, page.creationdatetime)
def testSelectedPage(self): tree = self._getTreeCtrl() self.application.wikiroot = self.wikiroot factory = TextPageFactory() factory.create(self.wikiroot, "Страница 1", []) factory.create(self.wikiroot, "Страница 2", []) factory.create(self.wikiroot["Страница 2"], "Страница 3", []) factory.create(self.wikiroot["Страница 2/Страница 3"], "Страница 4", []) factory.create(self.wikiroot["Страница 1"], "Страница 5", []) self.wikiroot.selectedPage = self.wikiroot["Страница 1"] selItem = tree.GetSelection() self.assertEqual(tree.GetItemData(selItem), self.wikiroot.selectedPage) self.assertEqual(tree.GetItemData(selItem), self.wikiroot["Страница 1"]) self.wikiroot.selectedPage = self.wikiroot["Страница 2/Страница 3"] selItem = tree.GetSelection() self.assertEqual(tree.GetItemData(selItem), self.wikiroot.selectedPage) self.assertEqual(tree.GetItemData(selItem), self.wikiroot["Страница 2/Страница 3"])
def testUpdateContentEvent (self): """ Тест на срабатывание событий при обновлении контента """ Application.onPageUpdate += self.pageUpdate removeWiki (self.path) self.assertFalse(self.isTreeUpdate) self.assertFalse(self.isPageUpdate) self.assertFalse(self.isPageCreate) # Создаем вики rootwiki = WikiDocument.create (self.path) TextPageFactory.create (rootwiki, u"Страница 1", []) Application.wikiroot = rootwiki # Изменим содержимое страницы rootwiki[u"Страница 1"].content = "1111" self.assertTrue(self.isPageUpdate) self.assertEqual (self.pageUpdateSender, rootwiki[u"Страница 1"]) Application.onPageUpdate -= self.pageUpdate Application.wikiroot = None
def testAddMorePages(self): tree = self._getTreeCtrl() self.application.wikiroot = self.wikiroot factory = TextPageFactory() factory.create(self.wikiroot, "Страница 1", []) factory.create(self.wikiroot, "Страница 2", []) factory.create(self.wikiroot["Страница 2"], "Страница 3", []) factory.create(self.wikiroot["Страница 2/Страница 3"], "Страница 4", []) factory.create(self.wikiroot["Страница 1"], "Страница 5", []) rootitem = tree.GetRootItem() self.assertEqual(tree.GetChildrenCount(rootitem, True), 5) self.assertEqual(tree.GetChildrenCount(rootitem, False), 2) firstItem, cookie = tree.GetFirstChild(rootitem) page2Item = tree.GetNextSibling(firstItem) self.assertEqual(tree.GetChildrenCount(page2Item, True), 2) self.assertEqual(tree.GetChildrenCount(page2Item, False), 1) self.assertEqual(tree.GetItemData(page2Item), self.wikiroot["Страница 2"]) self.assertEqual(tree.GetItemText(page2Item), "Страница 2") page3Item, cookie = tree.GetFirstChild(page2Item) self.assertEqual(tree.GetChildrenCount(page3Item, True), 1) self.assertEqual(tree.GetChildrenCount(page3Item, False), 1) self.assertEqual(tree.GetItemData(page3Item), self.wikiroot["Страница 2/Страница 3"]) self.assertEqual(tree.GetItemText(page3Item), "Страница 3")
def testLoadWiki (self): TextPageFactory.create (self.rootwiki, u"Страница 1", []) newdate = datetime.datetime (2012, 8, 24) self.rootwiki[u"Страница 1"].datetime = newdate newroot = WikiDocument.load (self.path) self.assertEqual (newroot[u"Страница 1"].datetime, newdate)
def setUp(self): self.initApplication() self.wikiroot = self.createWiki() factory = TextPageFactory() factory.create(self.wikiroot, "Страница", []) factory.create(self.wikiroot, "Страница 2", [])
def testPageSelectCreate(self): Application.onPageSelect += self.pageSelect removeDir(self.path) rootwiki = WikiDocument.create(self.path) TextPageFactory().create(rootwiki, "Страница 1", []) TextPageFactory().create(rootwiki, "Страница 2", []) TextPageFactory().create(rootwiki["Страница 2"], "Страница 3", []) Application.wikiroot = rootwiki self.assertEqual(rootwiki.selectedPage, None) rootwiki.selectedPage = rootwiki["Страница 1"] self.assertEqual(rootwiki.selectedPage, rootwiki["Страница 1"]) self.assertEqual(self.isPageSelect, True) self.assertEqual(self.pageSelectSender, rootwiki["Страница 1"]) self.assertEqual(self.pageSelectCount, 1) rootwiki.selectedPage = rootwiki["Страница 2/Страница 3"] self.assertEqual(rootwiki.selectedPage, rootwiki["Страница 2/Страница 3"]) self.assertEqual(self.isPageSelect, True) self.assertEqual(self.pageSelectSender, rootwiki["Страница 2/Страница 3"]) self.assertEqual(self.pageSelectCount, 2) Application.onPageSelect -= self.pageSelect
def testUpdateIconNoEvent (self): """ Тест на НЕсрабатывание событий при обновлении иконки, если не устанолен Application.wikiroot """ Application.wikiroot = None Application.onPageUpdate += self.pageUpdate Application.onTreeUpdate += self.treeUpdate removeWiki (self.path) self.assertFalse(self.isTreeUpdate) self.assertFalse(self.isPageUpdate) self.assertFalse(self.isPageCreate) # Создаем вики rootwiki = WikiDocument.create (self.path) TextPageFactory.create (rootwiki, u"Страница 1", []) Application.wikiroot = rootwiki # Изменим содержимое страницы rootwiki[u"Страница 1"].icon = "../test/images/feed.gif" self.assertTrue (self.isPageUpdate) self.assertEqual (self.pageUpdateSender, rootwiki[u"Страница 1"]) self.assertTrue (self.isTreeUpdate) self.assertEqual (self.treeUpdateSender, rootwiki[u"Страница 1"]) Application.onPageUpdate -= self.pageUpdate Application.onTreeUpdate -= self.treeUpdate
def testSortChildrenNoEvent(self): """ Сортировка заметок, находящихся на более глубоком уровне вложения """ factory = TextPageFactory() factory.create(self.wikiroot["Страница 1"], "Вложенная страница 8", []) factory.create(self.wikiroot["Страница 1"], "Вложенная страница 2", []) factory.create(self.wikiroot["Страница 1"], "Вложенная страница 5", []) factory.create(self.wikiroot["Страница 1"], "Вложенная страница 4", []) factory.create(self.wikiroot["Страница 1"], "Вложенная страница 6", []) factory.create(self.wikiroot["Страница 1"], "Вложенная страница 1", []) factory.create(self.wikiroot["Страница 1"], "Вложенная страница 3", []) factory.create(self.wikiroot["Страница 1"], "Вложенная страница 7", []) self.wikiroot["Страница 1/Вложенная страница 8"].order = 0 self.wikiroot["Страница 1/Вложенная страница 2"].order = 1 self.wikiroot["Страница 1/Вложенная страница 5"].order = 2 self.wikiroot["Страница 1/Вложенная страница 4"].order = 3 self.wikiroot["Страница 1/Вложенная страница 6"].order = 4 self.wikiroot["Страница 1/Вложенная страница 1"].order = 5 self.wikiroot["Страница 1/Вложенная страница 3"].order = 6 self.wikiroot["Страница 1/Вложенная страница 7"].order = 7 Application.onEndTreeUpdate += self.onEndTreeUpdate self.wikiroot["Страница 1"].sortChildrenAlphabetical() Application.onEndTreeUpdate -= self.onEndTreeUpdate self.assertEqual(0, self.treeUpdateCount) self.assertEqual(None, self.treeUpdateSender)
def testRemovePage(self): tree = self._getTreeCtrl() self.application.wikiroot = self.wikiroot factory = TextPageFactory() factory.create(self.wikiroot, "Страница 1", []) factory.create(self.wikiroot, "Страница 2", []) factory.create(self.wikiroot["Страница 2"], "Страница 3", []) factory.create(self.wikiroot["Страница 2/Страница 3"], "Страница 4", []) factory.create(self.wikiroot["Страница 1"], "Страница 5", []) rootitem = tree.GetRootItem() self.assertEqual(tree.GetChildrenCount(rootitem, True), 5) self.assertEqual(tree.GetChildrenCount(rootitem, False), 2) self.wikiroot["Страница 2/Страница 3"].remove() newrootitem = tree.GetRootItem() self.assertEqual(tree.GetChildrenCount(newrootitem, True), 3) self.assertEqual(tree.GetChildrenCount(newrootitem, False), 2) self.wikiroot["Страница 2"].remove() newrootitem2 = tree.GetRootItem() self.assertEqual(tree.GetChildrenCount(newrootitem2, True), 2) self.assertEqual(tree.GetChildrenCount(newrootitem2, False), 1)
def testUpdateTagsEvent (self): """ Тест на срабатывание событий при обновлении меток (тегов) """ Application.onPageUpdate += self.pageUpdate removeWiki (self.path) self.assertFalse(self.isTreeUpdate) self.assertFalse(self.isPageUpdate) self.assertFalse(self.isPageCreate) # Создаем вики rootwiki = WikiDocument.create (self.path) TextPageFactory.create (rootwiki, u"Страница 1", []) Application.wikiroot = rootwiki # Изменим содержимое страницы rootwiki[u"Страница 1"].tags = ["test"] self.assertTrue(self.isPageUpdate) self.assertEqual (self.pageUpdateSender, rootwiki[u"Страница 1"]) Application.onPageUpdate -= self.pageUpdate
def setUp(self): # Здесь будет создаваться вики self.path = mkdtemp(prefix=u'Абырвалг абыр') self.wikiroot = WikiDocument.create(self.path) factory = TextPageFactory() factory.create(self.wikiroot, u"Страница 1", []) factory.create(self.wikiroot, u"Страница 2", []) factory.create(self.wikiroot[u"Страница 2"], u"Страница 3", []) factory.create(self.wikiroot[u"Страница 2/Страница 3"], u"Страница 4", []) factory.create(self.wikiroot[u"Страница 1"], u"Страница 5", []) self.wikiroot[u"Страница 1"].content = u"1234567" self.wikiroot[u"Страница 2/Страница 3"].content = u"Абырвалг" self.wikiroot[ u"Страница 2/Страница 3/Страница 4"].content = u"Тарам-пам-пам" self.wikiroot[u"Страница 1/Страница 5"].content = u"111111" self.wikiroot[u"Страница 1"].tags = [u"метка 1"] self.wikiroot[u"Страница 2/Страница 3"].tags = [u"метка 2", u"метка 3"] self.wikiroot[u"Страница 2/Страница 3/Страница 4"].tags = [ u"метка 1", u"метка 2", u"метка 4" ] self.wikiroot[ u"Страница 2/Страница 3/Страница 4"].icon = "../test/images/feed.gif"
def setUp(self): # Количество срабатываний особытий при обновлении страницы self.treeUpdateCount = 0 self.treeUpdateSender = None Application.wikiroot = None # Здесь будет создаваться вики self.path = mkdtemp(prefix='Абырвалг абыр') self.wikiroot = WikiDocument.create(self.path) factory = TextPageFactory() factory.create(self.wikiroot, "Страница 8", []) factory.create(self.wikiroot, "Страница 2", []) factory.create(self.wikiroot, "Страница 5", []) factory.create(self.wikiroot, "Страница 4", []) factory.create(self.wikiroot, "Страница 6", []) factory.create(self.wikiroot, "Страница 1", []) factory.create(self.wikiroot, "Страница 3", []) factory.create(self.wikiroot, "Страница 7", []) self.wikiroot["Страница 8"].order = 0 self.wikiroot["Страница 2"].order = 1 self.wikiroot["Страница 5"].order = 2 self.wikiroot["Страница 4"].order = 3 self.wikiroot["Страница 6"].order = 4 self.wikiroot["Страница 1"].order = 5 self.wikiroot["Страница 3"].order = 6 self.wikiroot["Страница 7"].order = 7
def testRename(self): tree = self._getTreeCtrl() Application.wikiroot = self.wikiroot factory = TextPageFactory() factory.create(self.wikiroot, u"Страница 1", []) factory.create(self.wikiroot, u"Страница 2", []) factory.create(self.wikiroot[u"Страница 2"], u"Страница 3", []) factory.create(self.wikiroot[u"Страница 2/Страница 3"], u"Страница 4", []) factory.create(self.wikiroot[u"Страница 1"], u"Страница 5", []) self.wikiroot[u"Страница 2"].title = u"Переименованная страница" rootitem = tree.GetRootItem() firstItem, cookie = tree.GetFirstChild(rootitem) newPageItem = tree.GetNextSibling(firstItem) self.assertEqual(tree.GetChildrenCount(newPageItem, False), 1) self.assertEqual(tree.GetChildrenCount(newPageItem, True), 1) self.assertEqual( tree.GetItemData(newPageItem).GetData(), self.wikiroot[u"Переименованная страница"]) self.assertEqual(tree.GetItemText(newPageItem), u"Переименованная страница")
def testSymbolsNotWhiteSpacesText (self): TextPageFactory.create (self.rootwiki, u"Страница 1", []) testPage = self.rootwiki[u"Страница 1"] testPage.content = u"Бла бла бла\r\n\t\t\tАбырвалг " pageStat = self.loader[self.__pluginname].getPageStat (testPage) self.assertEqual (pageStat.symbolsNotWhiteSpaces, 17)
def testInvalidPageName2(self): self.assertRaises(DublicateTitle, TextPageFactory().create, self.wikiroot, u"страНица 1", []) self.assertRaises(DublicateTitle, TextPageFactory().create, self.wikiroot[u"Страница 1"], u"страНица 5", [])
def testSymbolsCountText (self): TextPageFactory.create (self.rootwiki, u"Страница 1", []) testPage = self.rootwiki[u"Страница 1"] testPage.content = u"Бла бла бла" pageStat = self.loader[self.__pluginname].getPageStat (testPage) self.assertEqual (pageStat.symbols, 11)
def testChildrenEmpty(self): factory = TextPageFactory() parent = factory.create(self.wikiroot, "Родитель", []) self.application.wikiroot = self.wikiroot self.application.selectedPage = parent self.application.actionController.getAction( SortChildAlphabeticalAction.stringId).run(None)
def testCreateDate (self): now = datetime.datetime.now() TextPageFactory.create (self.rootwiki, u"Страница 1", []) self.assertNotEqual (self.rootwiki[u"Страница 1"].datetime, None) delta = now - self.rootwiki[u"Страница 1"].datetime self.assertLess (delta, self._maxDelta)
def testsavePage (self): newdate = datetime.datetime (2012, 8, 24) TextPageFactory.create (self.rootwiki, u"Страница 1", []) self.rootwiki[u"Страница 1"].content = u"Бла-бла-бла" self.rootwiki[u"Страница 1"].datetime = newdate self.rootwiki[u"Страница 1"].save() self.assertEqual (self.rootwiki[u"Страница 1"].datetime, newdate)
class FactorySelector (object): """ Класс, который выбирает нужную фабрику для каждой страницы """ _defaultFactory = TextPageFactory() _factories = {factory.getTypeString(): factory for factory in [WikiPageFactory(), HtmlPageFactory(), TextPageFactory(), SearchPageFactory()]} @staticmethod def getFactories (): return sorted (FactorySelector._factories.values(), cmp = lambda x, y: cmp (x.title, y.title)) @staticmethod def getFactory (pageType): """ Найти фабрику, которая работает с переданным типом страницы (со страницей данного типа). Или вернуть фабрику по умолчанию """ return FactorySelector._factories.get (pageType, FactorySelector._defaultFactory) @staticmethod def reset (): """ Установить словарь фабрик в первоначальное состояние. Используется для тестирования. Это не конструктор. В случае изменения списка фабрик, установленных по умолчанию, нужно изменять этот метод. """ FactorySelector._factories = {factory.getTypeString(): factory for factory in [WikiPageFactory(), HtmlPageFactory(), TextPageFactory(), SearchPageFactory()]} @staticmethod def addFactory (newFactory): """ Добавить новую фабрику. При этом у фабрики может быть новый создаваемый тип страниц, в то же время фабрика может заменить существующую фабрику. """ FactorySelector._factories[newFactory.getTypeString()] = newFactory @staticmethod def removeFactory (typeString): """ Удаляет фабрику из словаря """ FactorySelector._factories.pop (typeString, None)
def setUp(self): self.path = mkdtemp(prefix='Абырвалг абыр') self.eventcount = 0 self.wikiroot = WikiDocument.create(self.path) factory = TextPageFactory() self._page = factory.create(self.wikiroot, "Страница 1", []) self._page.root.onPageUpdate += self._onPageUpdate
def test_registry_remove_page_01(self): factory = TextPageFactory() page1 = factory.create(self.wikiroot, "Страница 1", []) self.wikiroot.registry.get_page_registry(page1) self.assertTrue(self.wikiroot.registry.has_section_for_page(page1)) page1.remove() self.assertFalse(self.wikiroot.registry.has_section_for_page(page1))
def setUp(self): self.path = mkdtemp(prefix=u'Абырвалг абыр') self.eventcount = 0 self.wikiroot = WikiDocument.create(self.path) factory = TextPageFactory() self._page = factory.create(self.wikiroot, u"Страница 1", []) self._page.root.onPageUpdate += self._onPageUpdate
def setUp (self): BaseMainWndTest.setUp (self) factory = TextPageFactory() factory.create (self.wikiroot, u"Страница 1", []) factory.create (self.wikiroot, u"Страница 2", []) factory.create (self.wikiroot[u"Страница 2"], u"Страница 3", []) factory.create (self.wikiroot[u"Страница 2/Страница 3"], u"Страница 4", []) factory.create (self.wikiroot[u"Страница 1"], u"Страница 5", [])
def testInvalidIcon(self): tree = self._getTreeCtrl() self.application.wikiroot = self.wikiroot factory = TextPageFactory() page = factory.create(self.wikiroot, "Страница 1", []) icon_name = '../test/images/invalid.png' assert os.path.exists(icon_name) page.icon = icon_name
def testCreateOrder3 (self): TextPageFactory.create (self.rootwiki, u"Страница 2", []) TextPageFactory.create (self.rootwiki, u"Страница 1", []) self.assertEqual (self.rootwiki[u"Страница 1"].order, 0) self.assertEqual (self.rootwiki[u"Страница 2"].order, 1) self.assertEqual (len (self.rootwiki.children), 2) self.assertEqual (self.rootwiki.children[0], self.rootwiki[u"Страница 1"]) self.assertEqual (self.rootwiki.children[1], self.rootwiki[u"Страница 2"])
def testInvalidIcon(self): tree = self._getTreeCtrl() self.application.wikiroot = self.wikiroot factory = TextPageFactory() page = factory.create(self.wikiroot, "Страница 1", []) icon_name = 'testdata/images/invalid.png' assert os.path.exists(icon_name) page.icon = icon_name
def setUp(self): # Количество срабатываний особытий при обновлении страницы self.treeUpdateCount = 0 self.treeUpdateSender = None Application.wikiroot = None # Здесь будет создаваться вики self.path = mkdtemp (prefix=u'Абырвалг абыр') self.wikiroot = WikiDocument.create (self.path) factory = TextPageFactory() factory.create (self.wikiroot, u"Страница 8", []) factory.create (self.wikiroot, u"Страница 2", []) factory.create (self.wikiroot, u"Страница 5", []) factory.create (self.wikiroot, u"Страница 4", []) factory.create (self.wikiroot, u"Страница 6", []) factory.create (self.wikiroot, u"Страница 1", []) factory.create (self.wikiroot, u"Страница 3", []) factory.create (self.wikiroot, u"Страница 7", []) self.wikiroot[u"Страница 8"].order = 0 self.wikiroot[u"Страница 2"].order = 1 self.wikiroot[u"Страница 5"].order = 2 self.wikiroot[u"Страница 4"].order = 3 self.wikiroot[u"Страница 6"].order = 4 self.wikiroot[u"Страница 1"].order = 5 self.wikiroot[u"Страница 3"].order = 6 self.wikiroot[u"Страница 7"].order = 7
def setUp(self): # Здесь будет создаваться вики self.path = mkdtemp (prefix=u'Абырвалг абыр') self.eventcount = 0 self.wikiroot = WikiDocument.create (self.path) factory = TextPageFactory() factory.create (self.wikiroot, u"Страница 1", []) factory.create (self.wikiroot, u"Страница 2", []) factory.create (self.wikiroot[u"Страница 2"], u"Страница 3", []) factory.create (self.wikiroot[u"Страница 2/Страница 3"], u"Страница 4", []) factory.create (self.wikiroot[u"Страница 1"], u"Страница 5", []) self.wikiroot[u"Страница 1"].content = u"1234567" self.wikiroot[u"Страница 2/Страница 3"].content = u"Абырвалг" self.wikiroot[u"Страница 2/Страница 3/Страница 4"].content = u"Тарам-пам-пам" self.wikiroot[u"Страница 1/Страница 5"].content = u"111111" self.wikiroot[u"Страница 1"].tags = [u"метка 1"] self.wikiroot[u"Страница 2/Страница 3"].tags = [u"метка 2", u"метка 3"] self.wikiroot[u"Страница 2/Страница 3/Страница 4"].tags = [u"метка 1", u"метка 2", u"метка 4"] self.wikiroot[u"Страница 2/Страница 3/Страница 4"].icon = "../test/images/feed.gif" self.icons = ["../test/images/icon.gif", "../test/images/icon.png", "../test/images/icon.jpg", "../test/images/icon.ico"] Application.wikiroot = None
def testOrder1(self): tree = self._getTreeCtrl() Application.wikiroot = self.wikiroot factory = TextPageFactory() factory.create(self.wikiroot, u"Страница 1", []) factory.create(self.wikiroot, u"Страница 2", []) factory.create(self.wikiroot[u"Страница 2"], u"Страница 3", []) factory.create(self.wikiroot[u"Страница 2/Страница 3"], u"Страница 4", []) factory.create(self.wikiroot[u"Страница 1"], u"Страница 5", []) self.wikiroot[u"Страница 2"].order -= 1 rootitem = tree.GetRootItem() page2Item, cookie = tree.GetFirstChild(rootitem) self.assertEqual(tree.GetChildrenCount(page2Item, False), 1) self.assertEqual(tree.GetChildrenCount(page2Item, True), 1) self.assertEqual(tree.GetItemData(page2Item).GetData(), self.wikiroot[u"Страница 2"]) self.assertEqual(tree.GetItemText(page2Item), u"Страница 2") page3Item, cookie = tree.GetFirstChild(page2Item) self.assertEqual(tree.GetChildrenCount(page3Item, True), 0) self.assertEqual(tree.GetChildrenCount(page3Item, False), 0) self.assertEqual(tree.GetItemData(page3Item).GetData(), self.wikiroot[u"Страница 2/Страница 3"]) self.assertEqual(tree.GetItemText(page3Item), u"Страница 3")
def testSortChildrenNoEvent (self): """ Сортировка заметок, находящихся на более глубоком уровне вложения """ factory = TextPageFactory() factory.create (self.wikiroot[u"Страница 1"], u"Вложенная страница 8", []) factory.create (self.wikiroot[u"Страница 1"], u"Вложенная страница 2", []) factory.create (self.wikiroot[u"Страница 1"], u"Вложенная страница 5", []) factory.create (self.wikiroot[u"Страница 1"], u"Вложенная страница 4", []) factory.create (self.wikiroot[u"Страница 1"], u"Вложенная страница 6", []) factory.create (self.wikiroot[u"Страница 1"], u"Вложенная страница 1", []) factory.create (self.wikiroot[u"Страница 1"], u"Вложенная страница 3", []) factory.create (self.wikiroot[u"Страница 1"], u"Вложенная страница 7", []) self.wikiroot[u"Страница 1/Вложенная страница 8"].order = 0 self.wikiroot[u"Страница 1/Вложенная страница 2"].order = 1 self.wikiroot[u"Страница 1/Вложенная страница 5"].order = 2 self.wikiroot[u"Страница 1/Вложенная страница 4"].order = 3 self.wikiroot[u"Страница 1/Вложенная страница 6"].order = 4 self.wikiroot[u"Страница 1/Вложенная страница 1"].order = 5 self.wikiroot[u"Страница 1/Вложенная страница 3"].order = 6 self.wikiroot[u"Страница 1/Вложенная страница 7"].order = 7 Application.onEndTreeUpdate += self.onEndTreeUpdate self.wikiroot[u"Страница 1"].sortChildrenAlphabetical () Application.onEndTreeUpdate -= self.onEndTreeUpdate self.assertEqual (0, self.treeUpdateCount) self.assertEqual (None, self.treeUpdateSender)
def setUp (self): BaseMainWndTest.setUp (self) self.path2 = mkdtemp (prefix=u'Абырвалг абырвалг') factory = TextPageFactory() factory.create (self.wikiroot, u"Страница 1", []) factory.create (self.wikiroot, u"Страница 2", []) factory.create (self.wikiroot[u"Страница 2"], u"Страница 3", []) Tester.dialogTester.clear()
def testNoEventOrder5(self): TextPageFactory().create(self.wikiroot, "Страница 1", []) TextPageFactory().create(self.wikiroot, "Страница 2", []) TextPageFactory().create(self.wikiroot, "Страница 3", []) TextPageFactory().create(self.wikiroot, "Страница 4", []) # Перемещаем вниз,хотя страница и так в самом низу self.wikiroot["Страница 1"].order = 2 self.assertEqual(self.orderUpdateCount, 0) self.assertEqual(self.orderUpdateSender, None)
def setUp (self): self.path = u"../test/testwiki" removeWiki (self.path) self.wikiroot = WikiDocument.create (self.path) TextPageFactory.create (self.wikiroot, u"Страница 1", [u"тег 1"]) TextPageFactory.create (self.wikiroot, u"Страница 2", [u"тег 1", u"тег 2"]) TextPageFactory.create (self.wikiroot[u"Страница 2"], u"Страница 3", [u"тег 3"]) TextPageFactory.create (self.wikiroot[u"Страница 2/Страница 3"], u"Страница 4", []) TextPageFactory.create (self.wikiroot[u"Страница 1"], u"Страница 5", [u"тег 4", u"тег 1"])
def testNoEventOrder2(self): TextPageFactory().create(self.wikiroot, u"Страница 1", []) TextPageFactory().create(self.wikiroot, u"Страница 2", []) TextPageFactory().create(self.wikiroot, u"Страница 3", []) TextPageFactory().create(self.wikiroot, u"Страница 4", []) # Перемещаем вверх,хотя страница и так в самом верху self.wikiroot[u"Страница 1"].order -= 1 self.assertEqual(self.orderUpdateCount, 0) self.assertEqual(self.orderUpdateSender, None)
def testCreateDate_05(self): page = TextPageFactory().create(self.wikiroot, u"Страница 1", []) creationDateTime = page.creationdatetime time.sleep(0.1) page.content = u"111" newwiki = WikiDocument.load(self.path, False) newwiki[u"Страница 1"].content = u"Абырвалг" self.assertEqual(creationDateTime, newwiki[u"Страница 1"].creationdatetime)
def setUp(self): self.initApplication() self.wikiroot = self.createWiki() factory = TextPageFactory() factory.create(self.wikiroot, "Страница 1", []) factory.create(self.wikiroot, "Страница 2", []) factory.create(self.wikiroot["Страница 2"], "Страница 3", []) factory.create(self.wikiroot["Страница 2/Страница 3"], "Страница 4", []) factory.create(self.wikiroot["Страница 1"], "Страница 5", [])
def testCreateDate_05(self): page = TextPageFactory().create(self.wikiroot, "Страница 1", []) creationDateTime = page.creationdatetime time.sleep(0.1) page.content = "111" newwiki = WikiDocument.load(self.path, False) newwiki["Страница 1"].content = "Абырвалг" self.assertEqual(creationDateTime, newwiki["Страница 1"].creationdatetime)
def testEventOrder2(self): TextPageFactory().create(self.wikiroot, "Страница 1", []) TextPageFactory().create(self.wikiroot, "Страница 2", []) TextPageFactory().create(self.wikiroot, "Страница 3", []) TextPageFactory().create(self.wikiroot, "Страница 4", []) Application.wikiroot = self.wikiroot # Перемещаем вверх,хотя страница и так в самом верху self.wikiroot["Страница 1"].order -= 1 self.assertEqual(self.orderUpdateCount, 0)
def testChangeOrder9(self): TextPageFactory().create(self.wikiroot, "Страница 1", []) TextPageFactory().create(self.wikiroot, "Страница 2", []) TextPageFactory().create(self.wikiroot, "Страница 3", []) TextPageFactory().create(self.wikiroot, "Страница 4", []) self.wikiroot["Страница 4"].order = -100 self.assertEqual(self.wikiroot["Страница 4"].order, 0) self.assertEqual(self.wikiroot["Страница 1"].order, 1) self.assertEqual(self.wikiroot["Страница 2"].order, 2) self.assertEqual(self.wikiroot["Страница 3"].order, 3)
def testCreateOrder3(self): TextPageFactory().create(self.wikiroot, u"Страница 2", []) TextPageFactory().create(self.wikiroot, u"Страница 1", []) self.assertEqual(self.wikiroot[u"Страница 1"].order, 0) self.assertEqual(self.wikiroot[u"Страница 2"].order, 1) self.assertEqual(len(self.wikiroot.children), 2) self.assertEqual(self.wikiroot.children[0], self.wikiroot[u"Страница 1"]) self.assertEqual(self.wikiroot.children[1], self.wikiroot[u"Страница 2"])
def setUp(self): self.updateCount = 0 self.updateSender = None # Здесь будет создаваться вики self.path = mkdtemp(prefix=u'Абырвалг абыр') self.wikiroot = WikiDocument.create(self.path) self.page = TextPageFactory().create(self.wikiroot, u'Страница 1', []) Application.wikiroot = self.wikiroot Application.onTreeUpdate += self._onTreeUpdate
def testLoading1(self): TextPageFactory().create(self.wikiroot, "Страница 0", []) TextPageFactory().create(self.wikiroot, "Страница 1", []) TextPageFactory().create(self.wikiroot, "Страница 2", []) TextPageFactory().create(self.wikiroot, "Страница 3", []) wikiroot = WikiDocument.load(self.path) self.assertEqual(wikiroot["Страница 0"].order, 0) self.assertEqual(wikiroot["Страница 1"].order, 1) self.assertEqual(wikiroot["Страница 2"].order, 2) self.assertEqual(wikiroot["Страница 3"].order, 3)
def setUp(self): self.initApplication() self.wikiroot = self.createWiki() self.page_1 = TextPageFactory().create(self.wikiroot, "Страница 1", []) self.page_2 = TextPageFactory().create(self.wikiroot, "Страница 2", []) self.page_1_1 = TextPageFactory().create(self.page_1, "Подстраница 1", []) self.page_1_uid = self.application.pageUidDepot.createUid(self.page_1) self.page_2_uid = self.application.pageUidDepot.createUid(self.page_2) self.application.wikiroot = self.wikiroot self.application.selectedPage = self.page_1