diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2013-11-02 10:41:48 +0200 |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2013-11-02 10:41:48 +0200 |
commit | 758c521ea869e29f606ad61625b5b25dc6d5dd56 (patch) | |
tree | 2a88e44093f9911e4bfbf447064a4c5ceafce573 /Lib/tkinter/test/support.py | |
parent | 0e6c66d48a393cb3ba04f8537df8f87354796af1 (diff) | |
download | cpython-758c521ea869e29f606ad61625b5b25dc6d5dd56.tar.gz cpython-758c521ea869e29f606ad61625b5b25dc6d5dd56.zip |
Issue #19085: Added basic tests for all tkinter widget options.
Diffstat (limited to 'Lib/tkinter/test/support.py')
-rw-r--r-- | Lib/tkinter/test/support.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/Lib/tkinter/test/support.py b/Lib/tkinter/test/support.py index 6dd6d4a3fcb..8fd0beb2566 100644 --- a/Lib/tkinter/test/support.py +++ b/Lib/tkinter/test/support.py @@ -77,3 +77,42 @@ def simulate_mouse_click(widget, x, y): widget.event_generate('<Motion>', x=x, y=y) widget.event_generate('<ButtonPress-1>', x=x, y=y) widget.event_generate('<ButtonRelease-1>', x=x, y=y) + + +import _tkinter +tcl_version = tuple(map(int, _tkinter.TCL_VERSION.split('.'))) + +def requires_tcl(*version): + return unittest.skipUnless(tcl_version >= version, + 'requires Tcl version >= ' + '.'.join(map(str, version))) + +units = { + 'c': 72 / 2.54, # centimeters + 'i': 72, # inches + 'm': 72 / 25.4, # millimeters + 'p': 1, # points +} + +def pixels_conv(value): + return float(value[:-1]) * units[value[-1:]] + +def tcl_obj_eq(actual, expected): + if actual == expected: + return True + if isinstance(actual, _tkinter.Tcl_Obj): + if isinstance(expected, str): + return str(actual) == expected + if isinstance(actual, tuple): + if isinstance(expected, tuple): + return (len(actual) == len(expected) and + all(tcl_obj_eq(act, exp) + for act, exp in zip(actual, expected))) + return False + +def widget_eq(actual, expected): + if actual == expected: + return True + if isinstance(actual, (str, tkinter.Widget)): + if isinstance(expected, (str, tkinter.Widget)): + return str(actual) == str(expected) + return False |