forked from alejandroautalan/pygubu
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_button_command.py
91 lines (72 loc) · 2.36 KB
/
test_button_command.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# encoding: utf8
import os
import sys
import unittest
try:
import tkinter as tk
import tkinter.ttk as ttk
except:
import Tkinter as tk
import ttk
pygubu_basedir = os.path.abspath(os.path.dirname(
os.path.dirname(os.path.realpath(sys.argv[0]))))
if pygubu_basedir not in sys.path:
sys.path.insert(0, pygubu_basedir)
import pygubu
import support
class TestButtonCommand(unittest.TestCase):
def setUp(self):
support.root_deiconify()
xmldata = 'test_button_command.ui'
self.builder = builder = pygubu.Builder()
builder.add_from_file(xmldata)
self.widget = builder.get_object('mainwindow')
self.button1 = builder.get_object('button1')
self.button2 = builder.get_object('button2')
def tearDown(self):
support.root_withdraw()
def test_command_simple(self):
success = []
class AnObject:
def button1_clicked(self):
success.append(1)
def on_button_clicked(self):
pass
cbobj = AnObject()
self.builder.connect_callbacks(cbobj)
self.button1.invoke()
self.widget.update()
self.assertTrue(success)
self.widget.destroy()
def test_command_with_widgetid(self):
success = []
received_id = []
class AnObject:
def button1_clicked(self):
pass
def on_button_clicked(self, widgetid):
success.append(1)
received_id.append(widgetid)
cbobj = AnObject()
self.builder.connect_callbacks(cbobj)
self.button2.invoke()
self.widget.update()
self.assertTrue(success)
self.assertEqual(received_id[0], 'button2')
self.widget.destroy()
#def test_command_generate_event(self):
#success = []
#class AnObject:
#def button1_clicked(self):
#pass
#def on_button_clicked(self):
#pass
#def catch_button_event(self, event):
#success.append(1)
#cbobj = AnObject()
#self.button3.bind('<<MyButtonEvent>>', cbobj.catch_button_event)
#self.builder.connect_callbacks(cbobj)
#self.button3.invoke()
#self.widget.update()
#self.assertTrue(success)
#self.widget.destroy()