示例#1
0
    def test_labelCheckbutton(self):
        labelCheckbutton = LabelCheckbutton(Page(App()), "hello")
        self.assertEqual("hello", labelCheckbutton.label.getValue())
        self.assertIs(False, labelCheckbutton.checkbutton.getValue())

        labelCheckbutton = LabelCheckbutton(Page(App()), "hello", True)
        self.assertEqual("hello", labelCheckbutton.label.getValue())
        self.assertIs(True, labelCheckbutton.checkbutton.getValue())
示例#2
0
    def test_place(self):
        app = App()
        Page(app, width=200, height=200).show(mainloop=False)
        page = Page(app, width=10, height=10, bg="green")
        app.showChildren(mainloop=False)

        page.place(Vec2(100, 100))
        self.assertEqual(Vec2(100, 100), page.getTopLeftPos())
示例#3
0
    def test_getElementByValue(self):
        app = App()

        labelEntry = LabelEntry(Page(app), value="value here")
        self.assertEqual(labelEntry.label, app.getElementByValue("value here"))

        button = Button(Page(Page(Page(app))), value="test val")
        self.assertEqual(button, app.getElementByValue("test val"))
示例#4
0
    def test_getFirstParentByClass(self):
        app = App()
        LabelEntry(Page(app))

        self.assertEqual(None, app.getFirstParentByClass("App"))
        self.assertEqual(app, app.getFirstParentByClass("App",
                                                        includeSelf=True))
        self.assertEqual(
            None, app.getFirstParentByClass("LabelEntry", includeSelf=True))
    def test_getVisibleFraction(self):
        app = App()
        page = Page(app, width=100, height=100, scrollable=True)
        page2 = Page(page, width=196, height=196)

        with self.assertRaises(AttributeError):
            app.getVisibleFraction(page.canvas)

        page2.show(mainloop=False)
        self.assertEqual(Vec2(0.5), app.getVisibleFraction(page.canvas))
示例#6
0
    def test_getGridPos(self):
        grid = Grid(App())

        label = Label(Grid(App()), "hello")
        self.assertRaises(AttributeError, grid.getGridPos, label)

        label = Label(grid, "hello", column=1, row=1, pack=False)
        self.assertRaises(AttributeError, grid.getGridPos, label)

        label.pack()
        self.assertEqual(Vec2(1, 1), grid.getGridPos(label))
示例#7
0
    def test_children(self):
        for page in Page(App()), Page(App(), width=200, height=200):
            self.assertEqual(page.getChildren(), [])
            page.showChildren(mainloop=False)
            page.hideChildren()
            page.removeChildren()

            page2 = Page(page)
            self.assertEqual(page.getChildren(), [page2])
            self.assertFalse(page2.isShown())
            page.showChildren(mainloop=False)
            self.assertTrue(page2.isShown())
            page.hideChildren()
            self.assertFalse(page2.isShown())
            page.removeChildren()
            self.assertRaises(tk.TclError, page2.isShown)
            self.assertEqual(page.getChildren(), [])

            page2 = Page(page)
            page3 = Page(page)
            self.assertEqual(page.getChildren(), [page2, page3])
            self.assertEqual(page.getChildren(ignore=page2), [page3])
            self.assertEqual(page.getChildren(ignore=page3), [page2])
            self.assertEqual(page.getChildren(ignore=(page2, page3)), [])
            self.assertEqual(page.getChildren(ignore=[page2, page3]), [])

            self.assertEqual([page, page2, page3],
                             page.app.getChildren(recurrent=True))

            self.assertFalse(page2.isShown())
            self.assertFalse(page3.isShown())

            page.showChildren(ignore=(page2, page3), mainloop=False)
            self.assertFalse(page2.isShown())
            self.assertFalse(page3.isShown())

            page.showChildren(ignore=page2, mainloop=False)
            self.assertFalse(page2.isShown())
            self.assertTrue(page3.isShown())

            page.hideChildren()
            self.assertFalse(page2.isShown())
            self.assertFalse(page3.isShown())

            page.showChildren(mainloop=False)
            self.assertTrue(page2.isShown())
            self.assertTrue(page3.isShown())

            page.removeChildren()
            self.assertEqual(page.getChildren(), [])

            page.remove()
            self.assertRaises(tk.TclError, page.isShown)
示例#8
0
    def test_config(self):
        app = App()
        self.assertEqual(True, "bg" in app.getAllWidgetConfigs())
        self.assertEqual("SystemButtonFace", app.getWidgetConfig("bg"))

        app.widgetConfig(bg="red")
        self.assertEqual("red", app.getWidgetConfig("bg"))

        with self.assertRaises(tk.TclError):
            app.getWidgetConfig("doesntexist")
    def test_packPart(self):
        elementList = ElementList(Page(App()), maxFirstSteps=5)
        for i in range(6):
            Label(elementList, "hello")
        self.assertEqual([
            Vec2(0, 0),
            Vec2(0, 1),
            Vec2(0, 2),
            Vec2(0, 3),
            Vec2(0, 4),
            Vec2(1, 0)
        ], [elementList.getGridPos(ele) for ele in elementList.getChildren()])

        elementList.removeChildren()
        elementList.maxFirstSteps = 2
        for i in range(6):
            LabelEntry(elementList, "hello")
        self.assertEqual([
            Vec2(0, 0),
            Vec2(0, 1),
            Vec2(1, 0),
            Vec2(1, 1),
            Vec2(2, 0),
            Vec2(2, 1)
        ], [elementList.getGridPos(ele) for ele in elementList.getChildren()])
示例#10
0
    def test_getValue_and_setValue(self):
        entry = Entry(Page(App()), "default")
        self.assertEqual("default", entry.getValue())

        entry.setValue("hello there")
        self.assertEqual("hello there", entry.getValue())

        entry.setValue("")
        self.assertEqual("default", entry.getValue())

        entry.setValue(None)
        self.assertEqual("default", entry.getValue())

        entry.setValue(True)
        self.assertIs(True, entry.getValue())

        entry.setValue(5.2)
        self.assertEqual(5.2, entry.getValue())

        entry.setValue(5)
        self.assertEqual(5, entry.getValue())

        entry.setValue("5")
        self.assertEqual(5, entry.getValue())

        entry.setValue("none")
        self.assertEqual(None, entry.getValue())

        entry.app.remove()
示例#11
0
    def test__removeWord(self):
        entry = Entry(Page(App()))
        entry.setValue("hello there")
        entry._removeWord()
        self.assertEqual("hello x", entry.getValue())

        entry.setValue("hello there")
        entry.setMarker(5)
        entry._removeWord()
        self.assertEqual("x there", entry.getValue())

        entry.setValue("hello there")
        entry.setMarker(6)
        entry._removeWord()
        self.assertEqual("helloxthere", entry.getValue())

        entry.setValue("hello there")
        entry.setMarker(6)
        entry._removeWord(delete=True)
        self.assertEqual("hello x", entry.getValue())

        entry.setValue("hello there")
        entry.setMarker(5)
        entry._removeWord(delete=True)
        self.assertEqual("helloxthere", entry.getValue())

        entry.app.remove()
示例#12
0
    def test_siblings(self):
        app = App()
        for page in Page(app), Page(app, width=200, height=200):
            text1 = Label(page, "hi")
            text2 = Label(page, "hello")
            self.assertEqual(text1.getSiblings(), [text2])
            self.assertEqual(text2.getSiblings(), [text1])
            self.assertEqual(text1.getSiblings(ignore=text1), [text2])
            self.assertEqual(text1.getSiblings(ignore=text2), [])
            self.assertEqual(text1.getSiblings(ignore=(text1, text2)), [])
            self.assertFalse(text1.isShown())
            self.assertFalse(text2.isShown())

            text1.showSiblings(mainloop=False)
            self.assertTrue(text2.isShown())
            self.assertTrue(text1.isShown())

            text1.hideSiblings(ignore=text2)
            self.assertTrue(text1.isShown())
            self.assertTrue(text2.isShown())

            text1.hideSiblings()
            self.assertTrue(text1.isShown())
            self.assertFalse(text2.isShown())

            text2.removeSiblings()
            self.assertRaises(tk.TclError, text1.isShown)
            self.assertFalse(text2.isShown())

            text1.parentPage.showChildren(mainloop=False)
            self.assertTrue(text2.isShown())
示例#13
0
    def test_append(self):
        grid = Grid(App())
        # Column 2
        self.assertEqual(Vec2(2, 0),
                         grid.appendToColumn(Label(grid, pack=False), 2))
        self.assertEqual(Vec2(2, 1),
                         grid.appendToColumn(Label(grid, pack=False), 2))
        # Column 1
        self.assertEqual(Vec2(1, 0),
                         grid.appendToColumn(Label(grid, pack=False), 1))

        # Row 0
        self.assertEqual(Vec2(0, 0),
                         grid.appendToRow(Label(grid, pack=False), 0))
        self.assertEqual(Vec2(3, 0),
                         grid.appendToRow(Label(grid, pack=False), 0))
        self.assertEqual(Vec2(4, 0),
                         grid.appendToRow(Label(grid, pack=False), 0))

        # Row 1
        self.assertEqual(Vec2(0, 1),
                         grid.appendToRow(Label(grid, pack=False), 1))
        self.assertEqual(Vec2(1, 1),
                         grid.appendToRow(Label(grid, pack=False), 1))

        # Column 0
        self.assertEqual(Vec2(0, 2),
                         grid.appendToColumn(Label(grid, pack=False), 0))
示例#14
0
    def test_parents(self):
        for page in Page(App()), Page(App(), width=200, height=200):
            page2 = Page(page)
            page3 = Page(page2)
            self.assertEqual(page3.getParents(), [page2, page])
            self.assertEqual(page3.getParents(includeSelf=True),
                             [page3, page2, page])
            self.assertEqual(page3.getTopPage(), page)

            page3.show(mainloop=False)
            self.assertTrue(page3.isShown())
            self.assertTrue(page2.isShown())
            self.assertTrue(page.isShown())
            self.assertTrue(page3.app.isShown())
            self.assertTrue(page2.app.isShown())
            self.assertTrue(page.app.isShown())
示例#15
0
    def test_default(self):
        entry = Entry(Page(App()), "default")
        entry.clearIfDefault()
        self.assertEqual("", entry.getValue())

        entry.setDefault("test")
        self.assertEqual("", entry.getValue())

        entry.callBind("<FocusOut>")
        self.assertEqual("test", entry.getValue())

        entry.clearIfDefault()
        self.assertEqual("", entry.getValue())

        entry.setValue("hello")
        self.assertEqual("hello", entry.getValue())

        entry.clearIfDefault()
        self.assertEqual("hello", entry.getValue())

        entry.setValue("not default")
        entry.callBind("<FocusOut>")
        self.assertEqual("not default", entry.getValue())

        entry.setDefault("not default")
        entry.clearIfDefault()
        self.assertEqual("", entry.getValue())

        entry.callBind("<FocusOut>")
        self.assertEqual("not default", entry.getValue())

        entry.setDefault(True)
        self.assertEqual(True, entry.getValue())

        entry.app.remove()
示例#16
0
    def test_place(self):
        app = App()
        label = Label(Page(app, width=500, height=500), "testing", pack=False)

        label.place(Vec2(100, 100))
        label.show(mainloop=False)

        self.assertEqual(Vec2(100, 100), label.getTopLeftPos())
示例#17
0
    def test_toggleShow(self):
        app = App()
        page = Page(app)

        self.assertEqual(False, page.isPacked())
        page.toggleShow(mainloop=False)
        self.assertEqual(True, page.isPacked())
        page.toggleShow(mainloop=False)
        self.assertEqual(False, page.isPacked())
示例#18
0
    def test_getGridElement(self):
        grid = Grid(App())
        self.assertEqual(None, grid.getGridElement(Vec2(1, 0)))

        label = Label(grid, "hello", column=1, row=0)
        self.assertEqual(label, grid.getGridElement(Vec2(1, 0)))

        label = Label(grid, column=0, row=0)
        self.assertEqual(label, grid.getGridElement(Vec2(0, 0)))
示例#19
0
    def test_toggleShow(self):
        app = App()
        label = Label(Page(app), "testing")

        self.assertEqual(True, label.isPacked())
        label.toggleShow(mainloop=False)
        self.assertEqual(False, label.isPacked())
        label.toggleShow(mainloop=False)
        self.assertEqual(True, label.isPacked())
示例#20
0
    def test_removeInput(self):
        inputList = InputList(Page(App()))

        inputList.setValues({"test": True})
        self.assertEqual({"test": True}, inputList.getValues())

        self.assertTrue(inputList.removeInput("test"))
        self.assertEqual({}, inputList.getValues())

        self.assertFalse(inputList.removeInput("test"))
示例#21
0
 def test_nextSibling(self):
     page = Page(App())
     page1 = Page(page)
     page2 = Page(page)
     page3 = Page(page)
     self.assertEqual(page1.nextSibling(), page2)
     self.assertEqual(page2.nextSibling(), page3)
     self.assertEqual(page3.nextSibling(), page1)
     self.assertEqual(page3.previousSibling(), page2)
     self.assertEqual(page1.previousSibling(), page3)
示例#22
0
 def test_nextSibling(self):
     page = Page(App())
     button = Button(page, "button")
     label = Label(page, "label")
     checkbutton = Checkbutton(page)
     self.assertEqual(button.nextSibling(), label)
     self.assertEqual(label.nextSibling(), checkbutton)
     self.assertEqual(checkbutton.nextSibling(), button)
     self.assertEqual(checkbutton.previousSibling(), label)
     self.assertEqual(button.previousSibling(), checkbutton)
示例#23
0
    def test_removeChildren(self):
        inputList = InputList(Page(App()))

        inputList.setValues({"test": True, "entry": "text"})
        self.assertEqual({"test": True, "entry": "text"}, inputList.getValues())

        inputList.removeChildren()
        self.assertEqual({}, inputList.getValues())

        with self.assertRaises(NotImplementedError):
            inputList.removeChildren(ignore=["foobar"])
示例#24
0
    def test_siblings(self):
        for page in Page(App()), Page(App(), width=200, height=200):
            self.assertEqual(page.getChildren(), [])
            self.assertEqual(page.getParents(), [])
            self.assertEqual(page.getParents(includeSelf=True), [page])
            self.assertEqual(page.getTopPage(), page)
            self.assertEqual(page.getSiblings(), [])
            page.showSiblings(mainloop=False)
            page.hideSiblings()
            page.removeSiblings()
            page.show(mainloop=False)
            self.assertTrue(page.isShown())
            page.hide()
            self.assertFalse(page.isShown())
            page.toggleShow(mainloop=False)
            self.assertTrue(page.isShown())
            page.toggleShow(mainloop=False)
            self.assertFalse(page.isShown())

            page3 = Page(page.app)
            page2 = Page(page.app)
            self.assertEqual(page.getSiblings(), [page3, page2])

            page.showSiblings(mainloop=False)
            self.assertTrue(page2.isShown())
            self.assertTrue(page3.isShown())

            page.hideSiblings()
            self.assertFalse(page2.isShown())
            self.assertFalse(page3.isShown())

            page.showSiblings(ignore=page2, mainloop=False)
            self.assertFalse(page2.isShown())
            self.assertTrue(page3.isShown())

            page.hideSiblings(ignore=page3)
            self.assertFalse(page2.isShown())
            self.assertTrue(page3.isShown())

            page.remove()
            self.assertRaises(tk.TclError, page.isShown)
示例#25
0
 def test_textOnClick(self):
     text = Label(Page(App()), "hello")
     text.onClick(lambda: 1, add=False)
     self.assertEqual([1], text.click())
     text.onClick(lambda: 2, add=False)
     self.assertEqual([2], text.click())
     text.onClick(lambda: 3, add=True)
     self.assertEqual([2, 3], text.click())
     text.onClick(lambda: 4)
     self.assertEqual([2, 3, 4], text.click())
     text.onClick(lambda: 5, add=False)
     self.assertEqual([5], text.click())
示例#26
0
 def test_buttonOnRightClick(self):
     button = Button(Page(App()), "hello")
     button.onRightClick(lambda: 1, add=False)
     self.assertEqual([1], button.rightClick())
     button.onRightClick(lambda: 2, add=False)
     self.assertEqual([2], button.rightClick())
     button.onRightClick(lambda: 3, add=True)
     self.assertEqual([2, 3], button.rightClick())
     button.onRightClick(lambda: 4)
     self.assertEqual([2, 3, 4], button.rightClick())
     button.onRightClick(lambda: 5, add=False)
     self.assertEqual([5], button.rightClick())
示例#27
0
    def test_config(self):
        app = App()
        label = Label(Page(app), "testing")

        self.assertEqual(True, "bg" in label.getAllWidgetConfigs())
        self.assertEqual("SystemButtonFace", label.getWidgetConfig("bg"))

        label.widgetConfig(bg="red")
        self.assertEqual("red", label.getWidgetConfig("bg"))

        with self.assertRaises(tk.TclError):
            label.getWidgetConfig("doesntexist")
示例#28
0
    def test__clickNextButton(self):
        page = Page(App())
        entry = Entry(page, "hello")
        Label(page, "random")
        Button(page, "Change default", lambda: 5)
        self.assertEqual([5], entry._clickNextButton())

        entry2 = Entry(page, "hello")
        Button(page, "Change default", lambda: 3)
        self.assertEqual([3], entry2._clickNextButton())

        page.app.remove()
示例#29
0
    def test_pos(self):
        app = App()
        label = Button(Page(app), "testing", pack=False)
        self.assertEqual(Vec2(), label.getTopLeftPos())
        self.assertEqual(Vec2(1), label.getSize())

        label.show(mainloop=False)
        self.assertEqual(True, label.getWindowPos().inrange(1, 500))
        self.assertEqual(True, label.getSize().inrange(10, 100))

        self.assertEqual(True, label.getTopLeftPos().inrange(0, 100))
        self.assertLess(label.getTopLeftPos(), label.getBottomRightPos())
        self.assertEqual(True, label.getSize().inrange(10, 100))
示例#30
0
    def test_value(self):
        label = Label(Page(App()), "hello")

        label.setValue("test")
        self.assertEqual("test", label.getValue())

        label.setValue(None)
        self.assertEqual("", label.getValue())

        label.setValue("")
        self.assertEqual("", label.getValue())

        label.setValue(True)
        self.assertEqual(True, label.getValue())