From: Serhiy Storchaka Date: Mon, 4 Nov 2013 21:05:23 +0000 (+0200) Subject: Issue #19085: Fix running test_ttk_textonly on displayless host. X-Git-Tag: v2.7.8~292 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3ecd17e2b266085021fb02eb33a7e982e21d52e3;p=python Issue #19085: Fix running test_ttk_textonly on displayless host. --- diff --git a/Lib/lib-tk/test/test_tkinter/test_widgets.py b/Lib/lib-tk/test/test_tkinter/test_widgets.py index 3042599a09..f0a4eeb77a 100644 --- a/Lib/lib-tk/test/test_tkinter/test_widgets.py +++ b/Lib/lib-tk/test/test_tkinter/test_widgets.py @@ -4,7 +4,8 @@ import os from test.test_support import requires, run_unittest from test_ttk.support import tcl_version, requires_tcl, widget_eq -from widget_tests import (add_standard_options, noconv, noconv_meth, int_round, +from widget_tests import ( + add_standard_options, noconv, noconv_meth, int_round, pixels_round, AbstractWidgetTest, StandardOptionsTests, IntegerSizeTests, PixelSizeTests) @@ -240,7 +241,7 @@ class MenubuttonTest(AbstractLabelTest, unittest.TestCase): 'takefocus', 'text', 'textvariable', 'underline', 'width', 'wraplength', ) - _conv_pixels = staticmethod(AbstractWidgetTest._conv_pixels) + _conv_pixels = staticmethod(pixels_round) def _create(self, **kwargs): return Tkinter.Menubutton(self.root, **kwargs) diff --git a/Lib/lib-tk/test/widget_tests.py b/Lib/lib-tk/test/widget_tests.py index c60673cc2d..f17ea5f0ab 100644 --- a/Lib/lib-tk/test/widget_tests.py +++ b/Lib/lib-tk/test/widget_tests.py @@ -15,12 +15,18 @@ pixels_round = int_round 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()