summaryrefslogtreecommitdiff
path: root/Lib/tkinter/test/support.py
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2022-06-22 22:23:37 +0200
committerGitHub <noreply@github.com>2022-06-22 22:23:37 +0200
commitc1fb12e5afa09aca3134a9bc0116c31dbcccc5e9 (patch)
tree0e730c9d6f9275d2870910a28be48d0bc3a5d9af /Lib/tkinter/test/support.py
parent47e35625ff2c4e6511a12e7178c3e4fbc965b634 (diff)
downloadcpython-git-c1fb12e5afa09aca3134a9bc0116c31dbcccc5e9.tar.gz
gh-54781: Move Lib/tkinter/test/test_ttk/ to Lib/test/test_ttk/ (#94070)
* Move Lib/tkinter/test/test_tkinter/ to Lib/test/test_tkinter/. * Move Lib/tkinter/test/test_ttk/ to Lib/test/test_ttk/. * Add Lib/test/test_ttk/__init__.py based on test_ttk_guionly.py. * Add Lib/test/test_tkinter/__init__.py * Remove old Lib/test/test_tk.py. * Remove old Lib/test/test_ttk_guionly.py. * Add __main__ sub-modules. * Update imports and update references to rename files.
Diffstat (limited to 'Lib/tkinter/test/support.py')
-rw-r--r--Lib/tkinter/test/support.py135
1 files changed, 0 insertions, 135 deletions
diff --git a/Lib/tkinter/test/support.py b/Lib/tkinter/test/support.py
deleted file mode 100644
index 9154ebac5c..0000000000
--- a/Lib/tkinter/test/support.py
+++ /dev/null
@@ -1,135 +0,0 @@
-import functools
-import tkinter
-import unittest
-
-class AbstractTkTest:
-
- @classmethod
- def setUpClass(cls):
- cls._old_support_default_root = tkinter._support_default_root
- destroy_default_root()
- tkinter.NoDefaultRoot()
- cls.root = tkinter.Tk()
- cls.wantobjects = cls.root.wantobjects()
- # De-maximize main window.
- # Some window managers can maximize new windows.
- cls.root.wm_state('normal')
- try:
- cls.root.wm_attributes('-zoomed', False)
- except tkinter.TclError:
- pass
-
- @classmethod
- def tearDownClass(cls):
- cls.root.update_idletasks()
- cls.root.destroy()
- del cls.root
- tkinter._default_root = None
- tkinter._support_default_root = cls._old_support_default_root
-
- def setUp(self):
- self.root.deiconify()
-
- def tearDown(self):
- for w in self.root.winfo_children():
- w.destroy()
- self.root.withdraw()
-
-
-class AbstractDefaultRootTest:
-
- def setUp(self):
- self._old_support_default_root = tkinter._support_default_root
- destroy_default_root()
- tkinter._support_default_root = True
- self.wantobjects = tkinter.wantobjects
-
- def tearDown(self):
- destroy_default_root()
- tkinter._default_root = None
- tkinter._support_default_root = self._old_support_default_root
-
- def _test_widget(self, constructor):
- # no master passing
- x = constructor()
- self.assertIsNotNone(tkinter._default_root)
- self.assertIs(x.master, tkinter._default_root)
- self.assertIs(x.tk, tkinter._default_root.tk)
- x.destroy()
- destroy_default_root()
- tkinter.NoDefaultRoot()
- self.assertRaises(RuntimeError, constructor)
- self.assertFalse(hasattr(tkinter, '_default_root'))
-
-
-def destroy_default_root():
- if getattr(tkinter, '_default_root', None):
- tkinter._default_root.update_idletasks()
- tkinter._default_root.destroy()
- tkinter._default_root = None
-
-def simulate_mouse_click(widget, x, y):
- """Generate proper events to click at the x, y position (tries to act
- like an X server)."""
- widget.event_generate('<Enter>', x=0, y=0)
- 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):
- if len(version) <= 2:
- return unittest.skipUnless(tcl_version >= version,
- 'requires Tcl version >= ' + '.'.join(map(str, version)))
-
- def deco(test):
- @functools.wraps(test)
- def newtest(self):
- if get_tk_patchlevel() < version:
- self.skipTest('requires Tcl version >= ' +
- '.'.join(map(str, version)))
- test(self)
- return newtest
- return deco
-
-_tk_patchlevel = None
-def get_tk_patchlevel():
- global _tk_patchlevel
- if _tk_patchlevel is None:
- tcl = tkinter.Tcl()
- _tk_patchlevel = tcl.info_patchlevel()
- return _tk_patchlevel
-
-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