[Python-checkins] cpython (merge 3.3 -> default): Issue #19085: Fix running test_ttk_textonly on displayless host.

serhiy.storchaka python-checkins at python.org
Mon Nov 4 22:07:29 CET 2013


http://hg.python.org/cpython/rev/713cc4908a96
changeset:   86928:713cc4908a96
parent:      86925:fe5a829bd645
parent:      86927:47d3714dcb33
user:        Serhiy Storchaka <storchaka at gmail.com>
date:        Mon Nov 04 23:06:51 2013 +0200
summary:
  Issue #19085: Fix running test_ttk_textonly on displayless host.

files:
  Lib/tkinter/test/test_tkinter/test_widgets.py |   5 +-
  Lib/tkinter/test/widget_tests.py              |  20 ++++++---
  2 files changed, 16 insertions(+), 9 deletions(-)


diff --git a/Lib/tkinter/test/test_tkinter/test_widgets.py b/Lib/tkinter/test/test_tkinter/test_widgets.py
--- a/Lib/tkinter/test/test_tkinter/test_widgets.py
+++ b/Lib/tkinter/test/test_tkinter/test_widgets.py
@@ -4,7 +4,8 @@
 from test.support import requires
 
 from tkinter.test.support import tcl_version, requires_tcl, widget_eq
-from tkinter.test.widget_tests import (add_standard_options, noconv,
+from tkinter.test.widget_tests import (
+    add_standard_options, noconv, pixels_round,
     AbstractWidgetTest, StandardOptionsTests, IntegerSizeTests, PixelSizeTests)
 
 requires('gui')
@@ -243,7 +244,7 @@
         'takefocus', 'text', 'textvariable',
         'underline', 'width', 'wraplength',
     )
-    _conv_pixels = AbstractWidgetTest._conv_pixels
+    _conv_pixels = staticmethod(pixels_round)
 
     def _create(self, **kwargs):
         return tkinter.Menubutton(self.root, **kwargs)
diff --git a/Lib/tkinter/test/widget_tests.py b/Lib/tkinter/test/widget_tests.py
--- a/Lib/tkinter/test/widget_tests.py
+++ b/Lib/tkinter/test/widget_tests.py
@@ -12,18 +12,24 @@
 if tcl_version[:2] == (8, 5):
     # Issue #19085: Workaround a bug in Tk
     # http://core.tcl.tk/tk/info/3497848
-    root = setup_master()
-    patchlevel = root.call('info', 'patchlevel')
-    patchlevel = tuple(map(int, patchlevel.split('.')))
-    if patchlevel < (8, 5, 12):
-        pixels_round = int
-    del root
+    _pixels_round = None
+    def pixels_round(x):
+        global _pixels_round
+        if _pixels_round is None:
+            root = setup_master()
+            patchlevel = root.call('info', 'patchlevel')
+            patchlevel = tuple(map(int, patchlevel.split('.')))
+            if patchlevel < (8, 5, 12):
+                _pixels_round = int
+            else:
+                _pixels_round = int_round
+        return _pixels_round(x)
 
 
 _sentinel = object()
 
 class AbstractWidgetTest:
-    _conv_pixels = pixels_round
+    _conv_pixels = staticmethod(pixels_round)
     _conv_pad_pixels = None
     wantobjects = True
 

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list