diff options
Diffstat (limited to 'Lib/idlelib/idle_test/test_tree.py')
-rw-r--r-- | Lib/idlelib/idle_test/test_tree.py | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/Lib/idlelib/idle_test/test_tree.py b/Lib/idlelib/idle_test/test_tree.py index 9be9abe..b3e4c10 100644 --- a/Lib/idlelib/idle_test/test_tree.py +++ b/Lib/idlelib/idle_test/test_tree.py @@ -4,7 +4,7 @@ from idlelib import tree import unittest from test.support import requires requires('gui') -from tkinter import Tk +from tkinter import Tk, EventType, SCROLL class TreeTest(unittest.TestCase): @@ -29,5 +29,32 @@ class TreeTest(unittest.TestCase): node.expand() +class TestScrollEvent(unittest.TestCase): + + def test_wheel_event(self): + # Fake widget class containing `yview` only. + class _Widget: + def __init__(widget, *expected): + widget.expected = expected + def yview(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() + for ty, delta, num, amount in tests: + 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) |