[Python-checkins] bpo-34189: Fix checking for bugfix Tcl version. (GH-8397)

Serhiy Storchaka webhook-mailer at python.org
Sun Jul 22 14:41:51 EDT 2018


https://github.com/python/cpython/commit/c75c1e0e8aeb720ac3fcfab119b70cabba4e8235
commit: c75c1e0e8aeb720ac3fcfab119b70cabba4e8235
branch: master
author: Serhiy Storchaka <storchaka at gmail.com>
committer: GitHub <noreply at github.com>
date: 2018-07-22T21:41:48+03:00
summary:

bpo-34189: Fix checking for bugfix Tcl version. (GH-8397)

files:
M Lib/tkinter/test/support.py
M Lib/tkinter/test/test_tkinter/test_widgets.py

diff --git a/Lib/tkinter/test/support.py b/Lib/tkinter/test/support.py
index dd155fad0fd0..0d9a65a5cc83 100644
--- a/Lib/tkinter/test/support.py
+++ b/Lib/tkinter/test/support.py
@@ -1,3 +1,4 @@
+import functools
 import re
 import tkinter
 import unittest
@@ -54,9 +55,20 @@ def simulate_mouse_click(widget, x, y):
 tcl_version = tuple(map(int, _tkinter.TCL_VERSION.split('.')))
 
 def requires_tcl(*version):
-    return unittest.skipUnless(tcl_version >= 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() < (8, 6, 5):
+                self.skipTest('requires Tcl version >= ' +
+                                '.'.join(map(str, get_tk_patchlevel())))
+            test(self)
+        return newtest
+    return deco
+
 _tk_patchlevel = None
 def get_tk_patchlevel():
     global _tk_patchlevel
diff --git a/Lib/tkinter/test/test_tkinter/test_widgets.py b/Lib/tkinter/test/test_tkinter/test_widgets.py
index cd2a380793aa..e4c9d337ba7d 100644
--- a/Lib/tkinter/test/test_tkinter/test_widgets.py
+++ b/Lib/tkinter/test/test_tkinter/test_widgets.py
@@ -717,9 +717,7 @@ def test_activestyle(self):
         self.checkEnumParam(widget, 'activestyle',
                             'dotbox', 'none', 'underline')
 
-    @requires_tcl(8, 6, 5)
-    def test_justify(self):
-        AbstractWidgetTest.test_justify(self)
+    test_justify = requires_tcl(8, 6, 5)(StandardOptionsTests.test_justify)
 
     def test_listvariable(self):
         widget = self.create()



More information about the Python-checkins mailing list