Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #3
0
    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
Beispiel #4
0
    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
Beispiel #5
0
    def testInvalidPageName2(self):
        self.assertRaises(DublicateTitle,
                          TextPageFactory().create, self.wikiroot,
                          u"страНица 1", [])

        self.assertRaises(DublicateTitle,
                          TextPageFactory().create,
                          self.wikiroot[u"Страница 1"], u"страНица 5", [])
Beispiel #6
0
    def test_alias_find_page_04(self):
        subpage_1 = TextPageFactory().create(self.page, 'subpage_1', [])
        subpage_1.alias = 'Подстраница 1'

        subpage_2 = TextPageFactory().create(subpage_1, 'subpage_2', [])
        subpage_2.alias = 'Подстраница 2'

        self.assertIsNotNone(self.page['Подстраница 1/subpage_2'])
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)
Beispiel #8
0
    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)
Beispiel #9
0
    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)
Beispiel #10
0
    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)
Beispiel #11
0
    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"])
Beispiel #12
0
    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)
Beispiel #13
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 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
Beispiel #15
0
    def testCreateOrder11(self):
        TextPageFactory().create(self.wikiroot, "Страница 5", [],
                                 ocf.orderCalculatorBottom)

        TextPageFactory().create(self.wikiroot, "Страница 1", [],
                                 ocf.orderCalculatorBottom)

        TextPageFactory().create(self.wikiroot, "Страница 2", [],
                                 ocf.orderCalculatorBottom)

        self.assertEqual(self.wikiroot["Страница 5"].order, 0)
        self.assertEqual(self.wikiroot["Страница 1"].order, 1)
        self.assertEqual(self.wikiroot["Страница 2"].order, 2)
Beispiel #16
0
    def testChangeOrder1(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"Страница 4"].order += 1

        self.assertEqual(self.wikiroot[u"Страница 1"].order, 0)
        self.assertEqual(self.wikiroot[u"Страница 2"].order, 1)
        self.assertEqual(self.wikiroot[u"Страница 3"].order, 2)
        self.assertEqual(self.wikiroot[u"Страница 4"].order, 3)
Beispiel #17
0
    def testCreateOrder9(self):
        TextPageFactory().create(self.wikiroot, "Страница 5", [],
                                 ocf.orderCalculatorAlphabetically)

        TextPageFactory().create(self.wikiroot, "Страница 1", [],
                                 ocf.orderCalculatorAlphabetically)

        TextPageFactory().create(self.wikiroot, "Страница 2", [],
                                 ocf.orderCalculatorAlphabetically)

        self.assertEqual(self.wikiroot["Страница 1"].order, 0)
        self.assertEqual(self.wikiroot["Страница 2"].order, 1)
        self.assertEqual(self.wikiroot["Страница 5"].order, 2)
Beispiel #18
0
    def testEventOrder4(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 += 2

        self.assertEqual(self.orderUpdateCount, 1)
        self.assertEqual(self.orderUpdateSender, self.wikiroot["Страница 1"])
Beispiel #19
0
    def testChangeOrder2(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 -= 1

        self.assertEqual(self.wikiroot["Страница 1"].order, 0)
        self.assertEqual(self.wikiroot["Страница 2"].order, 1)
        self.assertEqual(self.wikiroot["Страница 3"].order, 2)
        self.assertEqual(self.wikiroot["Страница 4"].order, 3)
Beispiel #20
0
    def setUp(self):
        BaseMainWndTest.setUp(self)

        TextPageFactory().create(self.wikiroot, u"Текстовая страница", [])
        TextPageFactory().create(self.wikiroot, u"Текстовая страница 2", [])

        HtmlPageFactory().create(self.wikiroot, u"HTML-страница", [])
        HtmlPageFactory().create(self.wikiroot, u"HTML-страница 2", [])

        WikiPageFactory().create(self.wikiroot, u"Викистраница", [])
        WikiPageFactory().create(self.wikiroot, u"Викистраница 2", [])

        SearchPageFactory().create(self.wikiroot, u"Поисковая страница", [])
        SearchPageFactory().create(self.wikiroot, u"Поисковая страница 2", [])
Beispiel #21
0
    def setUp(self):
        self.initApplication()
        self.wikiroot = self.createWiki()

        TextPageFactory().create(self.wikiroot, "Текстовая страница", [])
        TextPageFactory().create(self.wikiroot, "Текстовая страница 2", [])

        HtmlPageFactory().create(self.wikiroot, "HTML-страница", [])
        HtmlPageFactory().create(self.wikiroot, "HTML-страница 2", [])

        WikiPageFactory().create(self.wikiroot, "Викистраница", [])
        WikiPageFactory().create(self.wikiroot, "Викистраница 2", [])

        SearchPageFactory().create(self.wikiroot, "Поисковая страница", [])
        SearchPageFactory().create(self.wikiroot, "Поисковая страница 2", [])
Beispiel #22
0
    def testChangeOrder(self):
        newdate = datetime.datetime(2012, 8, 24)

        TextPageFactory().create(self.wikiroot, "Страница 1", [])
        self.wikiroot["Страница 1"].content = "Бла-бла-бла"

        self.wikiroot["Страница 1"].datetime = newdate

        TextPageFactory().create(self.wikiroot, "Страница 2", [])
        self.wikiroot["Страница 2"].content = "Бла-бла"

        self.assertEqual(self.wikiroot["Страница 1"].datetime, newdate)

        self.wikiroot["Страница 1"].order += 1
        self.assertEqual(self.wikiroot["Страница 1"].datetime, newdate)
Beispiel #23
0
    def testCreateEvent(self):
        Application.onTreeUpdate += self.treeUpdate
        Application.onPageCreate += self.pageCreate

        removeDir(self.path)

        self.assertFalse(self.isTreeUpdate)
        self.assertFalse(self.isPageUpdate)
        self.assertFalse(self.isPageCreate)

        # Создаем вики
        rootwiki = WikiDocument.create(self.path)

        self.assertFalse(self.isTreeUpdate)
        self.assertEqual(self.treeUpdateSender, None)

        Application.wikiroot = rootwiki

        # Создаем страницу верхнего уровня (не считая корня)
        self.isPageCreate = False
        self.pageCreateSender = None

        TextPageFactory().create(rootwiki, u"Страница 1", [])

        self.assertTrue(self.isPageCreate)
        self.assertEqual(self.pageCreateSender, rootwiki[u"Страница 1"])

        # Создаем еще одну страницу
        self.isPageCreate = False
        self.pageCreateSender = None

        TextPageFactory().create(rootwiki, u"Страница 2", [])

        self.assertTrue(self.isPageCreate)
        self.assertEqual(self.pageCreateSender, rootwiki[u"Страница 2"])

        # Создаем подстраницу
        self.isPageCreate = False
        self.pageCreateSender = None

        TextPageFactory().create(rootwiki[u"Страница 2"], u"Страница 3", [])

        self.assertTrue(self.isPageCreate)
        self.assertEqual(self.pageCreateSender,
                         rootwiki[u"Страница 2/Страница 3"])

        Application.onTreeUpdate -= self.treeUpdate
        Application.onPageCreate -= self.pageCreate
Beispiel #24
0
    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")
Beispiel #25
0
    def testTreeItems(self):
        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["Страница 2/Страница 3/Страница 4"],
                       "Страница 6", [])
        factory.create(self.wikiroot["Страница 1"], "Страница 5", [])
        factory.create(self.wikiroot["Страница 1/Страница 5"], "Страница 7",
                       [])

        self.application.wikiroot = self.wikiroot
        tree = self.mainWindow.treePanel.panel

        self.assertNotEqual(tree.getTreeItem(self.wikiroot["Страница 1"]),
                            None)
        self.assertNotEqual(tree.getTreeItem(self.wikiroot["Страница 2"]),
                            None)
        self.assertNotEqual(
            tree.getTreeItem(self.wikiroot["Страница 2/Страница 3"]), None)
        self.assertEqual(
            tree.getTreeItem(
                self.wikiroot["Страница 2/Страница 3/Страница 4"]), None)
        self.assertEqual(
            tree.getTreeItem(
                self.wikiroot["Страница 2/Страница 3/Страница 4/Страница 6"]),
            None)
        self.assertNotEqual(
            tree.getTreeItem(self.wikiroot["Страница 1/Страница 5"]), None)
        self.assertEqual(
            tree.getTreeItem(
                self.wikiroot["Страница 1/Страница 5/Страница 7"]), None)
Beispiel #26
0
    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"])
Beispiel #27
0
    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)
Beispiel #28
0
    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")
Beispiel #29
0
    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)
Beispiel #30
0
    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