From 0ff174643437f34c50c8625462b5419b1a643b57 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Sun, 22 Jul 2018 22:14:45 +0300 Subject: [PATCH] [3.6] bpo-34189: Add simple tests for new Tk widget options. (GH-8396) (GH-8399) (cherry picked from commit e271ca78e37a502b3dc1036f824aa3999efcd56b) (cherry picked from commit c75c1e0e8aeb720ac3fcfab119b70cabba4e8235) --- Lib/tkinter/test/support.py | 14 ++++++++++- Lib/tkinter/test/test_tkinter/test_widgets.py | 25 +++++++++++++++++-- 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/Lib/tkinter/test/support.py b/Lib/tkinter/test/support.py index dd155fad0fd..0d9a65a5cc8 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 @@ import _tkinter 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 81b52eafea9..e4c9d337ba7 100644 --- a/Lib/tkinter/test/test_tkinter/test_widgets.py +++ b/Lib/tkinter/test/test_tkinter/test_widgets.py @@ -703,7 +703,7 @@ class ListboxTest(AbstractWidgetTest, unittest.TestCase): 'disabledforeground', 'exportselection', 'font', 'foreground', 'height', 'highlightbackground', 'highlightcolor', 'highlightthickness', - 'listvariable', 'relief', + 'justify', 'listvariable', 'relief', 'selectbackground', 'selectborderwidth', 'selectforeground', 'selectmode', 'setgrid', 'state', 'takefocus', 'width', 'xscrollcommand', 'yscrollcommand', @@ -717,6 +717,8 @@ class ListboxTest(AbstractWidgetTest, unittest.TestCase): self.checkEnumParam(widget, 'activestyle', 'dotbox', 'none', 'underline') + test_justify = requires_tcl(8, 6, 5)(StandardOptionsTests.test_justify) + def test_listvariable(self): widget = self.create() var = tkinter.DoubleVar(self.root) @@ -951,7 +953,9 @@ class PanedWindowTest(AbstractWidgetTest, unittest.TestCase): OPTIONS = ( 'background', 'borderwidth', 'cursor', 'handlepad', 'handlesize', 'height', - 'opaqueresize', 'orient', 'relief', + 'opaqueresize', 'orient', + 'proxybackground', 'proxyborderwidth', 'proxyrelief', + 'relief', 'sashcursor', 'sashpad', 'sashrelief', 'sashwidth', 'showhandle', 'width', ) @@ -978,6 +982,23 @@ class PanedWindowTest(AbstractWidgetTest, unittest.TestCase): widget = self.create() self.checkBooleanParam(widget, 'opaqueresize') + @requires_tcl(8, 6, 5) + def test_proxybackground(self): + widget = self.create() + self.checkColorParam(widget, 'proxybackground') + + @requires_tcl(8, 6, 5) + def test_proxyborderwidth(self): + widget = self.create() + self.checkPixelsParam(widget, 'proxyborderwidth', + 0, 1.3, 2.9, 6, -2, '10p', + conv=noconv) + + @requires_tcl(8, 6, 5) + def test_proxyrelief(self): + widget = self.create() + self.checkReliefParam(widget, 'proxyrelief') + def test_sashcursor(self): widget = self.create() self.checkCursorParam(widget, 'sashcursor')