diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2023-08-16 12:32:04 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-16 12:32:04 (GMT) |
commit | 91d935b47b47f5fa5c3eb0ee5e45a627f79babef (patch) | |
tree | 31583ffd882221422116526d050c6a7d17c10037 /Lib/test/test_tkinter/support.py | |
parent | 220d7e3120ffa23d01f91b7ad89f488b4dda3ef0 (diff) | |
download | cpython-91d935b47b47f5fa5c3eb0ee5e45a627f79babef.zip cpython-91d935b47b47f5fa5c3eb0ee5e45a627f79babef.tar.gz cpython-91d935b47b47f5fa5c3eb0ee5e45a627f79babef.tar.bz2 |
[3.12] gh-104496: Use correct Tcl or Tk version in Tkinter tests (GH-107688) (#107709)
gh-104496: Use correct Tcl or Tk version in Tkinter tests (GH-107688)
In future Tcl and Tk versions can be desynchronized.
(cherry picked from commit 3c8e8f3ceeae08fc43d885f5a4c65a3ee4b1a2c8)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Diffstat (limited to 'Lib/test/test_tkinter/support.py')
-rw-r--r-- | Lib/test/test_tkinter/support.py | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/Lib/test/test_tkinter/support.py b/Lib/test/test_tkinter/support.py index 9154eba..10e64bf 100644 --- a/Lib/test/test_tkinter/support.py +++ b/Lib/test/test_tkinter/support.py @@ -79,28 +79,28 @@ def simulate_mouse_click(widget, x, y): import _tkinter tcl_version = tuple(map(int, _tkinter.TCL_VERSION.split('.'))) +tk_version = tuple(map(int, _tkinter.TK_VERSION.split('.'))) -def requires_tcl(*version): - if len(version) <= 2: - return unittest.skipUnless(tcl_version >= version, - 'requires Tcl version >= ' + '.'.join(map(str, version))) +def requires_tk(*version): + if len(version) <= 2 and tk_version >= version: + return lambda test: test def deco(test): @functools.wraps(test) def newtest(self): - if get_tk_patchlevel() < version: - self.skipTest('requires Tcl version >= ' + + root = getattr(self, 'root', None) + if get_tk_patchlevel(root) < version: + self.skipTest('requires Tk version >= ' + '.'.join(map(str, version))) test(self) return newtest return deco _tk_patchlevel = None -def get_tk_patchlevel(): +def get_tk_patchlevel(root): global _tk_patchlevel if _tk_patchlevel is None: - tcl = tkinter.Tcl() - _tk_patchlevel = tcl.info_patchlevel() + _tk_patchlevel = tkinter._parse_version(root.tk.globalgetvar('tk_patchLevel')) return _tk_patchlevel units = { |