- Notifications
You must be signed in to change notification settings - Fork 31.8k
/
Copy pathtest_tree.py
60 lines (48 loc) · 1.71 KB
/
test_tree.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
"Test tree. coverage 56%."
fromidlelibimporttree
importunittest
fromtest.supportimportrequires
requires('gui')
fromtkinterimportTk, EventType, SCROLL
classTreeTest(unittest.TestCase):
@classmethod
defsetUpClass(cls):
cls.root=Tk()
cls.root.withdraw()
@classmethod
deftearDownClass(cls):
cls.root.destroy()
delcls.root
deftest_init(self):
# Start with code slightly adapted from htest.
sc=tree.ScrolledCanvas(
self.root, bg="white", highlightthickness=0, takefocus=1)
sc.frame.pack(expand=1, fill="both", side='left')
item=tree.FileTreeItem(tree.ICONDIR)
node=tree.TreeNode(sc.canvas, None, item)
node.expand()
classTestScrollEvent(unittest.TestCase):
deftest_wheel_event(self):
# Fake widget class containing `yview` only.
class_Widget:
def__init__(widget, *expected):
widget.expected=expected
defyview(widget, *args):
self.assertTupleEqual(widget.expected, args)
# Fake event class
class_Event:
pass
# (type, delta, num, amount)
tests= ((EventType.MouseWheel, 120, -1, -5),
(EventType.MouseWheel, -120, -1, 5),
(EventType.ButtonPress, -1, 4, -5),
(EventType.ButtonPress, -1, 5, 5))
event=_Event()
forty, delta, num, amountintests:
event.type=ty
event.delta=delta
event.num=num
res=tree.wheel_event(event, _Widget(SCROLL, amount, "units"))
self.assertEqual(res, "break")
if__name__=='__main__':
unittest.main(verbosity=2)