示例#1
0
def send_delete(widget):
    event = gtk.gdk.Event(gtk.gdk.KEY_PRESS)
    event.keyval = int(keysyms.Delete)
    event.hardware_keycode = 119
    event.window = widget.window
    widget.event(event)
    refresh_gui(DELAY)
示例#2
0
 def testSubView(self):
     self.foo.view.button.clicked()
     refresh_gui()
     self.assertEqual(self.foo.bar, self.foo.bar.view)
     self.assertEqual(self.foo.bar.toplevel, self.foo.bar.win)
     # setting None as transient window should be an error
     self.assertRaises(TypeError, self.foo.bar.set_transient_for, None)
示例#3
0
    def testAddingAObjectList(self):
        global persons

        self.list.add_list(persons)
        refresh_gui()

        self.assertEqual(len(self.list), len(persons))
示例#4
0
def send_backspace(widget):
    event = gtk.gdk.Event(gtk.gdk.KEY_PRESS)
    event.keyval = int(keysyms.BackSpace)
    event.hardware_keycode = 22
    event.window = widget.window
    widget.event(event)
    refresh_gui(DELAY)
示例#5
0
文件: test_masks.py 项目: Schevo/kiwi
    def testMovementKeysEmptyMask(self):
        entry = self.entry
        entry.set_mask('(00) 0000-0000')

        entry.emit('focus', gtk.DIR_TAB_FORWARD)
        refresh_gui(DELAY)

        self.assertEqual(entry.get_position(), 1)

        # Left
        move(entry, LEFT)
        self.assertEqual(entry.get_position(), 1)

        # Right
        move(entry, RIGHT)
        self.assertEqual(entry.get_position(), 2)

        move(entry, RIGHT)
        self.assertEqual(entry.get_position(), 3)

        move(entry, RIGHT)
        self.assertEqual(entry.get_position(), 5)

        move(entry, LEFT)
        self.assertEqual(entry.get_position(), 3)


        # Home
        entry.emit('move-cursor', gtk.MOVEMENT_DISPLAY_LINE_ENDS, -1, False)
        self.assertEqual(entry.get_position(), 1)

        # End
        entry.emit('move-cursor', gtk.MOVEMENT_DISPLAY_LINE_ENDS, 1, False)
        self.assertEqual(entry.get_position(), 14)
示例#6
0
    def testBackspace(self):
        if sys.platform == 'win32':
            raise SkipTest("Not supported on windows")

        entry = self.entry
        entry.set_mask('(00) 0000-0000')
        entry.grab_focus()

        insert_text(entry, '1234')
        self.assertEqual(entry.get_text(), '(12) 34  -    ')

        send_backspace(entry)
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '(12) 3   -    ')

        send_backspace(entry)
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '(12)     -    ')

        send_backspace(entry)
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '(1 )     -    ')

        send_backspace(entry)
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '(  )     -    ')
        self.assertEqual(entry.get_position(), 1)

        send_backspace(entry)
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '(  )     -    ')
        self.assertEqual(entry.get_position(), 1)
示例#7
0
    def testAddingAObjectList(self):
        global persons

        self.list.add_list(persons)
        refresh_gui()

        self.assertEqual(len(self.list), len(persons))
示例#8
0
    def testAddingABunchOfInstances(self):
        global persons

        for person in persons:
            self.list.append(person)
            refresh_gui()

        self.assertEqual(len(self.list), len(persons))
示例#9
0
    def testAddingABunchOfInstances(self):
        global persons

        for person in persons:
            self.list.append(person)
            refresh_gui()

        self.assertEqual(len(self.list), len(persons))
示例#10
0
    def testSetMask(self):
        entry = self.entry
        entry.set_mask('00/00/0000')
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '  /  /    ')

        entry.set_mask('(00) 0000-0000')
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '(  )     -    ')
示例#11
0
 def testSubView(self):
     self.foo.view.button.clicked()
     refresh_gui()
     # Broken, not how we use controllers/views in Stoq
     return
     self.assertEqual(self.foo.bar, self.foo.bar.view)
     self.assertEqual(self.foo.bar.toplevel, self.foo.bar.win)
     # setting None as transient window should be an error
     self.assertRaises(TypeError, self.foo.bar.set_transient_for, None)
示例#12
0
    def testClearObjectList(self):
        global persons

        self.list.add_list(persons)
        refresh_gui()

        self.list.clear()

        self.assertEqual(len(self.list), 0)
示例#13
0
 def testSubView(self):
     self.foo.view.button.clicked()
     refresh_gui()
     # Broken, not how we use controllers/views in Stoq
     return
     self.assertEqual(self.foo.bar, self.foo.bar.view)
     self.assertEqual(self.foo.bar.toplevel, self.foo.bar.win)
     # setting None as transient window should be an error
     self.assertRaises(TypeError, self.foo.bar.set_transient_for, None)
示例#14
0
文件: test_masks.py 项目: Schevo/kiwi
    def testSetMask(self):
        entry = self.entry
        entry.set_mask('00/00/0000')
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '  /  /    ')

        entry.set_mask('(00) 0000-0000')
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '(  )     -    ')
示例#15
0
    def testOneColumn(self):
        # column's attribute can not contain spaces
        self.assertRaises(AttributeError, Column, 'test column')

        mylist = ObjectList(Column('test_column'))
        self.win.add(mylist)
        refresh_gui()

        self.assertEqual(1, len(mylist.get_columns()))
示例#16
0
    def testClearObjectList(self):
        global persons

        self.list.add_list(persons)
        refresh_gui()

        self.list.clear()

        self.assertEqual(len(self.list), 0)
示例#17
0
    def testOneColumn(self):
        # column's attribute can not contain spaces
        self.assertRaises(AttributeError, Column, 'test column')

        mylist = ObjectList(Column('test_column'))
        self.win.add(mylist)
        refresh_gui()

        self.assertEqual(1, len(mylist.get_columns()))
示例#18
0
    def testClickCounter(self):
        clickcounter = ClickCounter()
        refresh_gui()

        # one for the boys
        clickcounter.button.clicked()
        self.assertEqual(clickcounter.clicks, 1)

        # one for the girls
        clickcounter.button.clicked()
        self.assertEqual(clickcounter.clicks, 2)
示例#19
0
    def testClickCounterGlade(self):
        clickcounter = GladeClickCounter()
        refresh_gui()

        # one for the boys
        clickcounter.button.clicked()
        self.assertEqual(clickcounter.clicks, 1)

        # one for the girls
        clickcounter.button.clicked()
        self.assertEqual(clickcounter.clicks, 2)
示例#20
0
 def testColors(self):
     self.foo.view.button.clicked()
     refresh_gui()
     win = self.foo.bar.win
     win.realize()
     color = get_background(win)
     self.assertEqual(color, "#001100")
     label = self.foo.bar.label
     label.realize()
     color = get_foreground(label)
     self.assertEqual(color, "#CC99FF")
示例#21
0
    def testRemovingOneInstance(self):
        global  persons

        self.list.add_list(persons)
        refresh_gui()

        # we are going to remove Kiko
        person = persons[2]

        self.list.remove(person)

        self.assertEqual(len(self.list), len(persons) - 1)
示例#22
0
    def testRemovingOneInstance(self):
        global persons

        self.list.add_list(persons)
        refresh_gui()

        # we are going to remove Kiko
        person = persons[2]

        self.list.remove(person)

        self.assertEqual(len(self.list), len(persons) - 1)
示例#23
0
 def testColors(self):
     self.foo.view.button.clicked()
     refresh_gui()
     # Broken, not how we use controllers/views in Stoq
     return
     win = self.foo.bar.win
     win.realize()
     color = get_background(win)
     self.assertEqual(color, "#001100")
     label = self.foo.bar.label
     label.realize()
     color = get_foreground(label)
     self.assertEqual(color, "#CC99FF")
示例#24
0
 def testColors(self):
     self.foo.view.button.clicked()
     refresh_gui()
     # Broken, not how we use controllers/views in Stoq
     return
     win = self.foo.bar.win
     win.realize()
     color = get_background(win)
     self.assertEqual(color, "#001100")
     label = self.foo.bar.label
     label.realize()
     color = get_foreground(label)
     self.assertEqual(color, "#CC99FF")
示例#25
0
    def testInsertAndMovementKeys(self):
        entry = self.entry
        entry.set_mask('(00) 0000-0000')
        entry.grab_focus()

        insert_text(entry, '1')
        self.assertEqual(entry.get_text(), '(1 )     -    ')
        self.assertEqual(entry.get_position(), 2)

        move(entry, LEFT)
        self.assertEqual(entry.get_position(), 1)

        move(entry, RIGHT)
        self.assertEqual(entry.get_position(), 2)

        # Can't enter an empty field
        move(entry, RIGHT)
        self.assertEqual(entry.get_position(), 2)

        insert_text(entry, '2')
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '(12)     -    ')
        # The position should be after the space in the mask
        self.assertEqual(entry.get_position(), 5)

        # Can't enter an empty field
        move(entry, RIGHT)
        self.assertEqual(entry.get_position(), 5)

        # But we can move to the space in the mask
        move(entry, LEFT)
        self.assertEqual(entry.get_position(), 4)

        # But trying to insert on it should insert after the space
        insert_text(entry, '9')
        self.assertEqual(entry.get_text(), '(12) 9   -    ')
        self.assertEqual(entry.get_position(), 6)

        # Even after moving to the static field ')'
        move(entry, LEFT)
        move(entry, LEFT)
        move(entry, LEFT)
        self.assertEqual(entry.get_position(), 3)
        insert_text(entry, '8')
        self.assertEqual(entry.get_text(), '(12) 89  -    ')
        self.assertEqual(entry.get_position(), 6)

        insert_text(entry, '345')
        self.assertEqual(entry.get_text(), '(12) 8345-9   ')
示例#26
0
文件: test_masks.py 项目: Schevo/kiwi
def send_key(widget, key):
    if isinstance(key, str) and key.isdigit():
        key = 'KP_'+key
    elif isinstance(key, str) and key in SPECIAL_KEYS:
        key = SPECIAL_KEYS[key]

    keysym  = getattr(keysyms, key)

    # Key press
    event = gtk.gdk.Event(gtk.gdk.KEY_PRESS)
    event.keyval = int(keysym)
    event.window = widget.window
    widget.event(event)

    refresh_gui(DELAY)
示例#27
0
def send_key(widget, key):
    if isinstance(key, str) and key.isdigit():
        key = 'KP_' + key
    elif isinstance(key, str) and key in SPECIAL_KEYS:
        key = SPECIAL_KEYS[key]

    keysym = getattr(keysyms, key)

    # Key press
    event = gtk.gdk.Event(gtk.gdk.KEY_PRESS)
    event.keyval = int(keysym)
    event.window = widget.window
    widget.event(event)

    refresh_gui(DELAY)
示例#28
0
文件: test_masks.py 项目: Schevo/kiwi
    def testInserting(self):
        entry = self.entry
        entry.set_mask('00/00/0000')
        entry.grab_focus()
        insert_text(entry, '12345678')
        self.assertEqual(entry.get_text(), '12/34/5678')

        entry.set_text('')
        insert_text(entry, '1/2/3333')
        self.assertEqual(entry.get_text(), '1 /2 /3333')

        entry.set_mask('(00) 0000-0000')
        entry.emit('focus', gtk.DIR_TAB_FORWARD)
        refresh_gui(DELAY)
        insert_text(entry, '1234567890')
        self.assertEqual(entry.get_text(), '(12) 3456-7890')
示例#29
0
    def testAddingOneInstance(self):
        # we should have two columns now
        self.assertEqual(2, len(self.list.get_columns()))

        person = Person('henrique', 21)
        self.list.append(person)

        refresh_gui()

        # usually you don't use the model directly, but tests are all about
        # breaking APIs, right?
        self.assertEqual(self.list[0], person)
        self.assertEqual(self.list[0].name, 'henrique')
        self.assertEqual(self.list[0].age, 21)

        # we still have to columns, right?
        self.assertEqual(2, len(self.list.get_columns()))
示例#30
0
    def testAddingOneInstance(self):
        # we should have two columns now
        self.assertEqual(2, len(self.list.get_columns()))

        person = Person('henrique', 21)
        self.list.append(person)

        refresh_gui()

        # usually you don't use the model directly, but tests are all about
        # breaking APIs, right?
        self.assertEqual(self.list[0], person)
        self.assertEqual(self.list[0].name, 'henrique')
        self.assertEqual(self.list[0].age, 21)

        # we still have to columns, right?
        self.assertEqual(2, len(self.list.get_columns()))
示例#31
0
    def testUpdatingOneInstance(self):
        global persons

        self.list.add_list(persons)
        refresh_gui()

        persons[0].age = 29
        self.list.update(persons[0])

        refresh_gui()

        # Do we have the same number of instances that we had before ?
        self.assertEqual(len(self.list), len(persons))

        # Trying to find our updated instance in the list
        self.assertEqual(self.list[0].age, 29)

        # let's be evil
        new_person = Person('Nando', 32)
        self.assertRaises(ValueError, self.list.update, new_person)
示例#32
0
    def testInserting(self):
        entry = self.entry
        entry.set_mask('00/00/0000')
        entry.grab_focus()
        insert_text(entry, '12345678')
        self.assertEqual(entry.get_text(), '12/34/5678')

        entry.set_text('')
        insert_text(entry, '12/34/5678')
        self.assertEqual(entry.get_text(), '12/34/5678')

        entry.set_text('')
        insert_text(entry, '1234')
        self.assertEqual(entry.get_text(), '12/34/    ')

        entry.set_mask('(00) 0000-0000')
        entry.emit('focus', gtk.DIR_TAB_FORWARD)
        refresh_gui(DELAY)
        insert_text(entry, '1234567890')
        self.assertEqual(entry.get_text(), '(12) 3456-7890')
示例#33
0
    def testUpdatingOneInstance(self):
        global persons

        self.list.add_list(persons)
        refresh_gui()

        persons[0].age = 29
        self.list.update(persons[0])

        refresh_gui()

        # Do we have the same number of instances that we had before ?
        self.assertEqual(len(self.list), len(persons))

        # Trying to find our updated instance in the list
        self.assertEqual(self.list[0].age, 29)

        # let's be evil
        new_person = Person('Nando', 32)
        self.assertRaises(ValueError, self.list.update, new_person)
示例#34
0
文件: test_masks.py 项目: Schevo/kiwi
    def testSetText(self):
        entry = self.entry
        entry.set_mask('00/00/0000')
        refresh_gui(DELAY)
        entry.set_text('12/34/5678')
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '12/34/5678')

        entry.set_mask('(00) 0000-0000')
        refresh_gui(DELAY)
        entry.set_text('(11) 1234-5678')
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '(11) 1234-5678')

        entry.set_text('')
        self.assertEqual(entry.get_text(), entry.get_empty_mask())
示例#35
0
    def testSetText(self):
        entry = self.entry
        entry.set_mask('00/00/0000')
        refresh_gui(DELAY)
        entry.set_text('12/34/5678')
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '12/34/5678')

        entry.set_mask('(00) 0000-0000')
        refresh_gui(DELAY)
        entry.set_text('(11) 1234-5678')
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '(11) 1234-5678')

        entry.set_text('')
        self.assertEqual(entry.get_text(), entry.get_empty_mask())
示例#36
0
文件: test_masks.py 项目: Schevo/kiwi
    def testDeleteSelection(self):
        if 1:
            return

        entry = self.entry
        entry.set_mask('(00) 0000-0000')
        entry.grab_focus()

        insert_text(entry, '1')
        self.assertEqual(entry.get_text(), '(1 )     -    ')

        select(entry, 2, 0)
        send_delete(entry)
        self.assertEqual(entry.get_position(), 1)

        insert_text(entry, '1234')
        self.assertEqual(entry.get_text(), '(12) 34  -    ')

        select(entry, 2, 0)
        refresh_gui(2)
        send_delete(entry)
        refresh_gui(2)
        self.assertEqual(entry.get_position(), 1)
示例#37
0
 def testButtons(self):
     f = Foo()
     refresh_gui()
     f.foo.clicked()
     refresh_gui()
     self.assertEqual(f.x, "FOO in Foo")
     f.bar.clicked()
     refresh_gui()
     self.assertEqual(f.y, "BAR in B")
示例#38
0
 def testButtons(self):
     f = Foo()
     refresh_gui()
     f.foo.clicked()
     refresh_gui()
     self.assertEqual(f.x, "FOO in Foo")
     f.bar.clicked()
     refresh_gui()
     self.assertEqual(f.y, "BAR in B")
示例#39
0
    def testMovementKeysEmptyMask(self):
        entry = self.entry
        entry.set_mask('(00) 0000-0000')

        entry.emit('focus', gtk.DIR_TAB_FORWARD)
        refresh_gui(DELAY)

        self.assertEqual(entry.get_position(), 1)

        # Left
        move(entry, LEFT)
        self.assertEqual(entry.get_position(), 1)

        # Right
        move(entry, RIGHT)
        self.assertEqual(entry.get_position(), 1)

        # Home
        entry.emit('move-cursor', gtk.MOVEMENT_DISPLAY_LINE_ENDS, -1, False)
        self.assertEqual(entry.get_position(), 1)

        # End
        entry.emit('move-cursor', gtk.MOVEMENT_DISPLAY_LINE_ENDS, 1, False)
        self.assertEqual(entry.get_position(), 1)
示例#40
0
    def testDelete(self):
        if sys.platform == 'win32':
            raise SkipTest("Not supported on windows")

        entry = self.entry
        entry.set_mask('(00) 0000-0000')
        entry.grab_focus()

        insert_text(entry, '12345678')
        self.assertEqual(entry.get_text(), '(12) 3456-78  ')

        # Home
        entry.emit('move-cursor', gtk.MOVEMENT_DISPLAY_LINE_ENDS, -1, False)
        self.assertEqual(entry.get_position(), 1)

        send_delete(entry)
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '(23) 4567-8   ')

        send_delete(entry)
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '(34) 5678-    ')

        move(entry, RIGHT)
        move(entry, RIGHT)
        move(entry, RIGHT)
        move(entry, RIGHT)
        self.assertEqual(entry.get_position(), 5)

        send_delete(entry)
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '(34) 678 -    ')

        send_delete(entry)
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '(34) 78  -    ')
示例#41
0
文件: test_masks.py 项目: Schevo/kiwi
    def testDelete(self):
        if 1:
            return

        entry = self.entry
        entry.set_mask('(00) 0000-0000')
        entry.grab_focus()

        insert_text(entry, '12345678')
        self.assertEqual(entry.get_text(), '(12) 3456-78  ')

        # Home
        entry.emit('move-cursor', gtk.MOVEMENT_DISPLAY_LINE_ENDS, -1, False)
        self.assertEqual(entry.get_position(), 1)

        send_delete(entry)
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '(2 ) 3456-78  ')

        send_delete(entry)
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '(  ) 3456-78  ')

        move(entry, RIGHT)
        move(entry, RIGHT)
        move(entry, RIGHT)
        move(entry, RIGHT)
        self.assertEqual(entry.get_position(), 6)

        send_delete(entry)
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '(  ) 356 -78  ')

        send_delete(entry)
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '(  ) 36  -78  ')
示例#42
0
 def testFooButton(self):
     self.foo.view.foo__button.clicked()
     refresh_gui()
     # Broken, not how we use controllers/views in Stoq
     return
     self.assertEqual(self.foo.view.label.get_text(), "Good click!")
示例#43
0
 def setUp(self):
     self.win = gtk.Window()
     self.win.set_default_size(400, 400)
     self.list = ObjectList([Column('name'), Column('age')])
     self.win.add(self.list)
     refresh_gui()
示例#44
0
 def testEmptyObjectList(self):
     mylist = ObjectList()
     self.win.add(mylist)
     refresh_gui()
示例#45
0
 def testEmptyObjectList(self):
     mylist = ObjectList()
     self.win.add(mylist)
     refresh_gui()
示例#46
0
 def testFooButton(self):
     self.foo.view.foo__button.clicked()
     refresh_gui()
     # Broken, not how we use controllers/views in Stoq
     return
     self.assertEqual(self.foo.view.label.get_text(), "Good click!")
示例#47
0
 def setUp(self):
     self.view = FooView()
     self.foo = FooController(self.view)
     refresh_gui()
示例#48
0
def insert_text(widget, text):
    for i in text:
        send_key(widget, i)

    refresh_gui(DELAY)
示例#49
0
文件: test_masks.py 项目: Schevo/kiwi
    def testBackspace(self):
        if 1:
            return

        entry = self.entry
        entry.set_mask('(00) 0000-0000')
        entry.grab_focus()

        insert_text(entry, '1234')
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '(12) 34  -    ')

        send_backspace(entry)
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '(12) 3   -    ')

        send_backspace(entry)
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '(12)     -    ')

        send_backspace(entry)
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '(1 )     -    ')

        send_backspace(entry)
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '(  )     -    ')
        self.assertEqual(entry.get_position(), 1)

        send_backspace(entry)
        refresh_gui(DELAY)
        self.assertEqual(entry.get_text(), '(  )     -    ')
        self.assertEqual(entry.get_position(), 1)
示例#50
0
 def testButtons(self):
     action_delegate = ActionDelegate()
     refresh_gui()
     action_delegate.New.activate()
     refresh_gui()
     self.assertEqual(action_delegate.new_activated, True)
示例#51
0
 def setUp(self):
     self.win = gtk.Window()
     self.win.set_default_size(400, 400)
     self.list = ObjectList([Column('name'), Column('age')])
     self.win.add(self.list)
     refresh_gui()