Issue #19085: Fix running test_ttk_textonly on displayless host.

This commit is contained in:
Serhiy Storchaka 2013-11-04 23:06:51 +02:00
commit b58d4a3209
2 changed files with 16 additions and 9 deletions

View File

@ -4,7 +4,8 @@ import os
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 @@ class MenubuttonTest(AbstractLabelTest, unittest.TestCase):
'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)

View File

@ -12,18 +12,24 @@ pixels_round = round
if tcl_version[:2] == (8, 5):
# Issue #19085: Workaround a bug in Tk
# http://core.tcl.tk/tk/info/3497848
_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
del root
_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