Skip to content

Commit 92a7a54

Browse files
committed
Tests added to test_tk for virtual events
1 parent f3b1578 commit 92a7a54

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import unittest
2+
import tkinter
3+
import _tkinter
4+
from test.support import requires, run_unittest
5+
from tkinter.test.support import AbstractTkTest
6+
7+
requires('gui')
8+
9+
class EventTest(AbstractTkTest, unittest.TestCase):
10+
11+
called = False
12+
test_data = None
13+
14+
# pump_events function 'borrowed' from ivan_pozdeev on stackoverflow
15+
def pump_events(self):
16+
while self.root.dooneevent(_tkinter.ALL_EVENTS | _tkinter.DONT_WAIT):
17+
pass
18+
19+
def test_virtual_event(self):
20+
def receive(e):
21+
EventTest.called = True
22+
self.assertIsInstance(e, tkinter.Event)
23+
self.assertEqual(e.type, tkinter.EventType.VirtualEvent)
24+
self.assertIsInstance(e.user_data, str)
25+
if EventTest.test_data is not None:
26+
self.assertEqual(e.user_data, EventTest.test_data)
27+
self.pump_events()
28+
EventTest.called = False
29+
b = self.root.bind('<<TEST>>', lambda e:receive(e))
30+
self.root.event_generate('<<TEST>>')
31+
self.pump_events()
32+
self.assertTrue(EventTest.called)
33+
EventTest.called = False
34+
EventTest.test_data = 'test'
35+
self.root.event_generate('<<TEST>>', data='test')
36+
self.pump_events()
37+
self.assertTrue(EventTest.called)
38+
self.root.unbind('<<TEST>>', b)
39+
EventTest.called = False
40+
self.root.event_generate('<<TEST>>')
41+
self.pump_events()
42+
self.assertFalse(EventTest.called)
43+
44+
tests_gui = (EventTest, )
45+
46+
if __name__ == "__main__":
47+
run_unittest(*tests_gui)

0 commit comments

Comments
 (0)