Beispiel #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)
Beispiel #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)
Beispiel #3
0
    def testAddingAObjectList(self):
        global persons

        self.list.add_list(persons)
        refresh_gui()

        self.assertEqual(len(self.list), len(persons))
Beispiel #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)
Beispiel #5
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(), 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)
Beispiel #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)
Beispiel #7
0
    def testAddingAObjectList(self):
        global persons

        self.list.add_list(persons)
        refresh_gui()

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

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

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

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

        self.assertEqual(len(self.list), len(persons))
Beispiel #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(), '(  )     -    ')
Beispiel #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)
Beispiel #12
0
    def testClearObjectList(self):
        global persons

        self.list.add_list(persons)
        refresh_gui()

        self.list.clear()

        self.assertEqual(len(self.list), 0)
Beispiel #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)
Beispiel #14
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(), '(  )     -    ')
Beispiel #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()))
Beispiel #16
0
    def testClearObjectList(self):
        global persons

        self.list.add_list(persons)
        refresh_gui()

        self.list.clear()

        self.assertEqual(len(self.list), 0)
Beispiel #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()))
Beispiel #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)
Beispiel #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)
Beispiel #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")
Beispiel #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)
Beispiel #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)
Beispiel #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")
Beispiel #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")
Beispiel #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   ')
Beispiel #26
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)
Beispiel #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)
Beispiel #28
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, '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')
Beispiel #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()))
Beispiel #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()))
Beispiel #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)
Beispiel #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')
Beispiel #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)
Beispiel #34
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())
Beispiel #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())
Beispiel #36
0
    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)
Beispiel #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")
Beispiel #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")
Beispiel #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)
Beispiel #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  -    ')
Beispiel #41
0
    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  ')
Beispiel #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!")
Beispiel #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()
Beispiel #44
0
 def testEmptyObjectList(self):
     mylist = ObjectList()
     self.win.add(mylist)
     refresh_gui()
Beispiel #45
0
 def testEmptyObjectList(self):
     mylist = ObjectList()
     self.win.add(mylist)
     refresh_gui()
Beispiel #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!")
Beispiel #47
0
 def setUp(self):
     self.view = FooView()
     self.foo = FooController(self.view)
     refresh_gui()
Beispiel #48
0
def insert_text(widget, text):
    for i in text:
        send_key(widget, i)

    refresh_gui(DELAY)
Beispiel #49
0
    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)
Beispiel #50
0
 def testButtons(self):
     action_delegate = ActionDelegate()
     refresh_gui()
     action_delegate.New.activate()
     refresh_gui()
     self.assertEqual(action_delegate.new_activated, True)
Beispiel #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()