aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib/tkinter/test/support.py
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2013-11-02 10:41:48 +0200
committerSerhiy Storchaka <storchaka@gmail.com>2013-11-02 10:41:48 +0200
commit758c521ea869e29f606ad61625b5b25dc6d5dd56 (patch)
tree2a88e44093f9911e4bfbf447064a4c5ceafce573 /Lib/tkinter/test/support.py
parent0e6c66d48a393cb3ba04f8537df8f87354796af1 (diff)
downloadcpython-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.py39
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