Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit91d935b

Browse files
[3.12]gh-104496: Use correct Tcl or Tk version in Tkinter tests (GH-107688) (#107709)
gh-104496: Use correct Tcl or Tk version in Tkinter tests (GH-107688)In future Tcl and Tk versions can be desynchronized.(cherry picked from commit3c8e8f3)Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
1 parent220d7e3 commit91d935b

File tree

7 files changed

+30
-39
lines changed

7 files changed

+30
-39
lines changed

‎Lib/test/test_tcl.py‎

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,6 @@
2020

2121
tcl_version=tuple(map(int,_tkinter.TCL_VERSION.split('.')))
2222

23-
_tk_patchlevel=None
24-
defget_tk_patchlevel():
25-
global_tk_patchlevel
26-
if_tk_patchlevelisNone:
27-
tcl=Tcl()
28-
_tk_patchlevel=tcl.info_patchlevel()
29-
return_tk_patchlevel
30-
3123

3224
classTkinterTest(unittest.TestCase):
3325

@@ -571,7 +563,6 @@ def test_splitlist(self):
571563
(1,'2', (3.4,))ifself.wantobjectselse
572564
('1','2','3.4')),
573565
]
574-
tk_patchlevel=get_tk_patchlevel()
575566
ifnotself.wantobjects:
576567
expected= ('12','\u20ac','\xe2\x82\xac','3.4')
577568
else:
@@ -580,8 +571,8 @@ def test_splitlist(self):
580571
(call('dict','create',12,'\u20ac',b'\xe2\x82\xac', (3.4,)),
581572
expected),
582573
]
583-
dbg_info= ('want objects? %s, Tcl version: %s,Tk patchlevel: %s'
584-
% (self.wantobjects,tcl_version,tk_patchlevel))
574+
dbg_info= ('want objects? %s, Tcl version: %s,Tcl patchlevel: %s'
575+
% (self.wantobjects,tcl_version,self.interp.info_patchlevel()))
585576
forarg,resintestcases:
586577
self.assertEqual(splitlist(arg),res,
587578
'arg=%a, %s'% (arg,dbg_info))

‎Lib/test/test_tkinter/support.py‎

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -79,28 +79,28 @@ def simulate_mouse_click(widget, x, y):
7979

8080
import_tkinter
8181
tcl_version=tuple(map(int,_tkinter.TCL_VERSION.split('.')))
82+
tk_version=tuple(map(int,_tkinter.TK_VERSION.split('.')))
8283

83-
defrequires_tcl(*version):
84-
iflen(version)<=2:
85-
returnunittest.skipUnless(tcl_version>=version,
86-
'requires Tcl version >= '+'.'.join(map(str,version)))
84+
defrequires_tk(*version):
85+
iflen(version)<=2andtk_version>=version:
86+
returnlambdatest:test
8787

8888
defdeco(test):
8989
@functools.wraps(test)
9090
defnewtest(self):
91-
ifget_tk_patchlevel()<version:
92-
self.skipTest('requires Tcl version >= '+
91+
root=getattr(self,'root',None)
92+
ifget_tk_patchlevel(root)<version:
93+
self.skipTest('requires Tk version >= '+
9394
'.'.join(map(str,version)))
9495
test(self)
9596
returnnewtest
9697
returndeco
9798

9899
_tk_patchlevel=None
99-
defget_tk_patchlevel():
100+
defget_tk_patchlevel(root):
100101
global_tk_patchlevel
101102
if_tk_patchlevelisNone:
102-
tcl=tkinter.Tcl()
103-
_tk_patchlevel=tcl.info_patchlevel()
103+
_tk_patchlevel=tkinter._parse_version(root.tk.globalgetvar('tk_patchLevel'))
104104
return_tk_patchlevel
105105

106106
units= {

‎Lib/test/test_tkinter/test_images.py‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
importtkinter
33
fromtestimportsupport
44
fromtest.supportimportos_helper
5-
fromtest.test_tkinter.supportimportAbstractTkTest,AbstractDefaultRootTest,requires_tcl
5+
fromtest.test_tkinter.supportimportAbstractTkTest,AbstractDefaultRootTest,requires_tk
66

77
support.requires('gui')
88

@@ -221,11 +221,11 @@ def test_create_from_gif_file(self):
221221
deftest_create_from_gif_data(self):
222222
self.check_create_from_data('gif')
223223

224-
@requires_tcl(8,6)
224+
@requires_tk(8,6)
225225
deftest_create_from_png_file(self):
226226
self.check_create_from_file('png')
227227

228-
@requires_tcl(8,6)
228+
@requires_tk(8,6)
229229
deftest_create_from_png_data(self):
230230
self.check_create_from_data('png')
231231

‎Lib/test/test_tkinter/test_widgets.py‎

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
importos
55
fromtest.supportimportrequires
66

7-
fromtest.test_tkinter.supportimport (requires_tcl,
7+
fromtest.test_tkinter.supportimport (requires_tk,
88
get_tk_patchlevel,widget_eq,
99
AbstractDefaultRootTest)
1010
fromtest.test_tkinter.widget_testsimport (
@@ -613,7 +613,7 @@ def test_configure_inactiveselectbackground(self):
613613
widget=self.create()
614614
self.checkColorParam(widget,'inactiveselectbackground')
615615

616-
@requires_tcl(8,6)
616+
@requires_tk(8,6)
617617
deftest_configure_insertunfocussed(self):
618618
widget=self.create()
619619
self.checkEnumParam(widget,'insertunfocussed',
@@ -924,7 +924,7 @@ def test_coords(self):
924924
foriinrange(4):
925925
self.assertIsInstance(coords[i],float)
926926

927-
@requires_tcl(8,6)
927+
@requires_tk(8,6)
928928
deftest_moveto(self):
929929
widget=self.create()
930930
i1=widget.create_rectangle(1,1,20,20,tags='group')
@@ -969,7 +969,7 @@ def test_configure_activestyle(self):
969969
self.checkEnumParam(widget,'activestyle',
970970
'dotbox','none','underline')
971971

972-
test_configure_justify=requires_tcl(8,6,5)(StandardOptionsTests.test_configure_justify)
972+
test_configure_justify=requires_tk(8,6,5)(StandardOptionsTests.test_configure_justify)
973973

974974
deftest_configure_listvariable(self):
975975
widget=self.create()
@@ -1108,7 +1108,7 @@ def test_configure_digits(self):
11081108

11091109
deftest_configure_from(self):
11101110
widget=self.create()
1111-
conv=floatifget_tk_patchlevel()>= (8,6,10)elsefloat_round
1111+
conv=floatifget_tk_patchlevel(self.root)>= (8,6,10)elsefloat_round
11121112
self.checkFloatParam(widget,'from',100,14.9,15.1,conv=conv)
11131113

11141114
deftest_configure_label(self):
@@ -1235,19 +1235,19 @@ def test_configure_opaqueresize(self):
12351235
widget=self.create()
12361236
self.checkBooleanParam(widget,'opaqueresize')
12371237

1238-
@requires_tcl(8,6,5)
1238+
@requires_tk(8,6,5)
12391239
deftest_configure_proxybackground(self):
12401240
widget=self.create()
12411241
self.checkColorParam(widget,'proxybackground')
12421242

1243-
@requires_tcl(8,6,5)
1243+
@requires_tk(8,6,5)
12441244
deftest_configure_proxyborderwidth(self):
12451245
widget=self.create()
12461246
self.checkPixelsParam(widget,'proxyborderwidth',
12471247
0,1.3,2.9,6,-2,'10p',
12481248
conv=False)
12491249

1250-
@requires_tcl(8,6,5)
1250+
@requires_tk(8,6,5)
12511251
deftest_configure_proxyrelief(self):
12521252
widget=self.create()
12531253
self.checkReliefParam(widget,'proxyrelief')

‎Lib/test/test_tkinter/widget_tests.py‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Common tests for test_tkinter/test_widgets.py and test_ttk/test_widgets.py
22

33
importtkinter
4-
fromtest.test_tkinter.supportimport (AbstractTkTest,tcl_version,
4+
fromtest.test_tkinter.supportimport (AbstractTkTest,tk_version,
55
pixels_conv,tcl_obj_eq)
66
importtest.support
77

@@ -22,7 +22,7 @@ def scaling(self):
2222
returnself._scaling
2323

2424
def_str(self,value):
25-
ifnotself._stringifyandself.wantobjectsandtcl_version>= (8,6):
25+
ifnotself._stringifyandself.wantobjectsandtk_version>= (8,6):
2626
returnvalue
2727
ifisinstance(value,tuple):
2828
return' '.join(map(self._str,value))
@@ -156,7 +156,7 @@ def checkReliefParam(self, widget, name):
156156
'flat','groove','raised','ridge','solid','sunken')
157157
errmsg='bad relief "spam": must be '\
158158
'flat, groove, raised, ridge, solid, or sunken'
159-
iftcl_version< (8,6):
159+
iftk_version< (8,6):
160160
errmsg=None
161161
self.checkInvalidParam(widget,name,'spam',
162162
errmsg=errmsg)

‎Lib/test/test_ttk/test_style.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ def test_map_custom_copy(self):
170170
newname=f'C.{name}'
171171
self.assertEqual(style.map(newname), {})
172172
style.map(newname,**default)
173-
iftheme=='alt'andname=='.'andget_tk_patchlevel()< (8,6,1):
173+
iftheme=='alt'andname=='.'andget_tk_patchlevel(self.root)< (8,6,1):
174174
default['embossed']= [('disabled','1')]
175175
self.assertEqual(style.map(newname),default)
176176
forkey,valueindefault.items():

‎Lib/test/test_ttk/test_widgets.py‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
importsys
66

77
fromtest.test_ttk_textonlyimportMockTclObj
8-
fromtest.test_tkinter.supportimport (AbstractTkTest,tcl_version,get_tk_patchlevel,
8+
fromtest.test_tkinter.supportimport (AbstractTkTest,tk_version,get_tk_patchlevel,
99
simulate_mouse_click,AbstractDefaultRootTest)
1010
fromtest.test_tkinter.widget_testsimport (add_standard_options,
1111
AbstractWidgetTest,StandardOptionsTests,IntegerSizeTests,PixelSizeTests)
@@ -19,7 +19,7 @@ def test_configure_class(self):
1919
widget=self.create()
2020
self.assertEqual(widget['class'],'')
2121
errmsg='attempt to change read-only option'
22-
ifget_tk_patchlevel()< (8,6,0,'beta',3):
22+
ifget_tk_patchlevel(self.root)< (8,6,0,'beta',3):
2323
errmsg='Attempt to change read-only option'
2424
self.checkInvalidParam(widget,'class','Foo',errmsg=errmsg)
2525
widget2=self.create(class_='Foo')
@@ -560,7 +560,7 @@ def test_configure_orient(self):
560560
widget=self.create()
561561
self.assertEqual(str(widget['orient']),'vertical')
562562
errmsg='attempt to change read-only option'
563-
ifget_tk_patchlevel()< (8,6,0,'beta',3):
563+
ifget_tk_patchlevel(self.root)< (8,6,0,'beta',3):
564564
errmsg='Attempt to change read-only option'
565565
self.checkInvalidParam(widget,'orient','horizontal',
566566
errmsg=errmsg)
@@ -1526,7 +1526,7 @@ def test_heading(self):
15261526

15271527
deftest_heading_callback(self):
15281528
defsimulate_heading_click(x,y):
1529-
iftcl_version>= (8,6):
1529+
iftk_version>= (8,6):
15301530
self.assertEqual(self.tv.identify_column(x),'#0')
15311531
self.assertEqual(self.tv.identify_region(x,y),'heading')
15321532
simulate_mouse_click(self.tv,x,y)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp