]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-65784: Add support for parametrized resource wantobjects in regrtests (GH-143570)
authorSerhiy Storchaka <storchaka@gmail.com>
Fri, 16 Jan 2026 16:38:38 +0000 (18:38 +0200)
committerGitHub <noreply@github.com>
Fri, 16 Jan 2026 16:38:38 +0000 (18:38 +0200)
This allows to run Tkinter tests with the specified value of
tkinter.wantobjects, for example "-u wantobjects=0".

21 files changed:
Lib/test/libregrtest/cmdline.py
Lib/test/libregrtest/utils.py
Lib/test/test_tcl.py
Lib/test/test_tkinter/__init__.py
Lib/test/test_tkinter/support.py
Lib/test/test_tkinter/test_colorchooser.py
Lib/test/test_tkinter/test_font.py
Lib/test/test_tkinter/test_geometry_managers.py
Lib/test/test_tkinter/test_images.py
Lib/test/test_tkinter/test_loadtk.py
Lib/test/test_tkinter/test_messagebox.py
Lib/test/test_tkinter/test_misc.py
Lib/test/test_tkinter/test_simpledialog.py
Lib/test/test_tkinter/test_text.py
Lib/test/test_tkinter/test_variables.py
Lib/test/test_tkinter/test_widgets.py
Lib/test/test_ttk/__init__.py
Lib/test/test_ttk/test_extensions.py
Lib/test/test_ttk/test_style.py
Lib/test/test_ttk/test_widgets.py
Misc/NEWS.d/next/Tests/2026-01-08-16-56-59.gh-issue-65784.aKNo1U.rst [new file with mode: 0644]

index d784506703461b2a4e09b04d8262c5fab006fd89..2c404f6d80bcf39fe570e03cc51f3685c3820d53 100644 (file)
@@ -134,6 +134,9 @@ resources to test.  Currently only the following are defined:
                 and 3.9 to test backwards compatibility. These tests
                 may take very long to complete.
 
+    wantobjects -    Allows to run Tkinter tests with the specified value of
+                     tkinter.wantobjects.
+
 To enable all resources except one, use '-uall,-<resource>'.  For
 example, to run all the tests except for the gui tests, give the
 option '-uall,-gui'.
index 4479f336b1ee53ecd09f8fd1ac7aba16ba923b96..3bbc3fa127abb3340199b68bd618a3de1c89b0da 100644 (file)
@@ -41,7 +41,7 @@ ALL_RESOURCES = ('audio', 'console', 'curses', 'largefile', 'network',
 # - tzdata: while needed to validate fully test_datetime, it makes
 #   test_datetime too slow (15-20 min on some buildbots) and so is disabled by
 #   default (see bpo-30822).
-RESOURCE_NAMES = ALL_RESOURCES + ('extralargefile', 'tzdata', 'xpickle')
+RESOURCE_NAMES = ALL_RESOURCES + ('extralargefile', 'tzdata', 'xpickle', 'wantobjects')
 
 
 # Types for types hints
index ef281f6d1fe53a02e607be0dfd6de6646122bbb6..47450d3fd5976fafb032f5db4bee04365f3632e6 100644 (file)
@@ -817,6 +817,10 @@ class BigmemTclTest(unittest.TestCase):
 
 
 def setUpModule():
+    wantobjects = support.get_resource_value('wantobjects')
+    if wantobjects is not None:
+        unittest.enterModuleContext(
+            support.swap_attr(tkinter, 'wantobjects', int(wantobjects)))
     if support.verbose:
         tcl = Tcl()
         print('patchlevel =', tcl.call('info', 'patchlevel'), flush=True)
index aa196c12c804ac0ddea838b003d283dfda0eb274..62890c705a6ca66d47dbd8ff81e4087511f0c00e 100644 (file)
@@ -22,3 +22,9 @@ requires('gui')
 
 def load_tests(*args):
     return load_package_tests(os.path.dirname(__file__), *args)
+
+def setUpModule():
+    wantobjects = support.get_resource_value('wantobjects')
+    if wantobjects is not None:
+        unittest.enterModuleContext(
+            support.swap_attr(tkinter, 'wantobjects', int(wantobjects)))
index 46b01e6f1312909505567eff6af0300727066911..7fb0b217fd24ecf9a8801fa5b5fbedd2bba766fc 100644 (file)
@@ -1,5 +1,14 @@
 import functools
 import tkinter
+import unittest
+from test import support
+
+
+def setUpModule():
+    wantobjects = support.get_resource_value('wantobjects')
+    if wantobjects is not None:
+        unittest.enterModuleContext(
+            support.swap_attr(tkinter, 'wantobjects', int(wantobjects)))
 
 class AbstractTkTest:
 
@@ -10,6 +19,8 @@ class AbstractTkTest:
         tkinter.NoDefaultRoot()
         cls.root = tkinter.Tk()
         cls.wantobjects = cls.root.wantobjects()
+        if support.is_resource_enabled('wantobjects'):
+            assert cls.wantobjects == int(support.get_resource_value('wantobjects'))
         # De-maximize main window.
         # Some window managers can maximize new windows.
         cls.root.wm_state('normal')
index 9bba21392d8d1453ac9324b59db8d1971771c3f4..8a7e97f207a41fa89863172732df61dcc5fe7e6e 100644 (file)
@@ -1,6 +1,7 @@
 import unittest
 import tkinter
 from test.support import requires, swap_attr
+from test.test_tkinter.support import setUpModule  # noqa: F401
 from test.test_tkinter.support import AbstractDefaultRootTest, AbstractTkTest
 from tkinter import colorchooser
 from tkinter.colorchooser import askcolor
index fc50f9fdbb588c3ec15095611aab6ad6d611d7fc..ee147710fbfc85735be9a12fcb06dbe94252ae17 100644 (file)
@@ -3,6 +3,7 @@ import unittest
 import tkinter
 from tkinter import font
 from test.support import requires, gc_collect, ALWAYS_EQ
+from test.test_tkinter.support import setUpModule  # noqa: F401
 from test.test_tkinter.support import AbstractTkTest, AbstractDefaultRootTest
 
 requires('gui')
index d71a634a76731053e348b37bcde55e5405a9a72e..b2ce143ff0948f7f42eca8c116deac1f7894aac9 100644 (file)
@@ -4,6 +4,7 @@ import tkinter
 from tkinter import TclError
 from test.support import requires
 
+from test.test_tkinter.support import setUpModule  # noqa: F401
 from test.test_tkinter.support import pixels_conv
 from test.test_tkinter.widget_tests import AbstractWidgetTest
 
index 358a18beee25710f0478f50e23cdde4deab95d82..3aca9515a33b2484f2de6d59474f952f7ab3225c 100644 (file)
@@ -3,6 +3,7 @@ import unittest
 import tkinter
 from test import support
 from test.support import os_helper
+from test.test_tkinter.support import setUpModule  # noqa: F401
 from test.test_tkinter.support import AbstractTkTest, AbstractDefaultRootTest, requires_tk
 
 support.requires('gui')
index 61b0eda2fc750aed9ed39a2dceb09b83eb927b42..7cff654621eb3506dcb45854d46d39034569c9bb 100644 (file)
@@ -3,6 +3,7 @@ import sys
 import unittest
 import test.support as test_support
 from test.support import os_helper
+from test.test_tkinter.support import setUpModule  # noqa: F401
 from tkinter import Tcl, TclError
 
 test_support.requires('gui')
index f41bdc98286283ad5d6389ec6ce2f956d1dfab99..f29f0c7ba5908619c102247e44567220b55929ad 100644 (file)
@@ -1,6 +1,7 @@
 import unittest
 import tkinter
 from test.support import requires, swap_attr
+from test.test_tkinter.support import setUpModule  # noqa: F401
 from test.test_tkinter.support import AbstractDefaultRootTest
 from tkinter.commondialog import Dialog
 from tkinter.messagebox import showinfo
index 32e2329506e7ff732d8c8ff28655c2652f25a073..a6ba55b3fcadb32888b7e46ffa4fe3cd673ba7a2 100644 (file)
@@ -5,6 +5,7 @@ import tkinter
 from tkinter import TclError
 import enum
 from test import support
+from test.test_tkinter.support import setUpModule  # noqa: F401
 from test.test_tkinter.support import (AbstractTkTest, AbstractDefaultRootTest,
                                        requires_tk, get_tk_patchlevel)
 
index 502f7f7098a322d37448753845a86c47d27a53bf..313ad82e0a2c0d9792a4b97f245c8d18eb1eb28c 100644 (file)
@@ -1,6 +1,7 @@
 import unittest
 import tkinter
 from test.support import requires, swap_attr
+from test.test_tkinter.support import setUpModule  # noqa: F401
 from test.test_tkinter.support import AbstractDefaultRootTest
 from tkinter.simpledialog import Dialog, askinteger
 
index d579cca95ee2bbd15153090f67cf991de78b23ed..453a4505a0a4da87ce57a62e772dd8ef9002a247 100644 (file)
@@ -1,6 +1,7 @@
 import unittest
 import tkinter
 from test.support import requires
+from test.test_tkinter.support import setUpModule  # noqa: F401
 from test.test_tkinter.support import AbstractTkTest
 
 requires('gui')
index 75b3a6934fc0e31760a8be0648c401294d08d37f..8733095ffb65f4010d3d38ff85d26e3778e2c555 100644 (file)
@@ -6,6 +6,7 @@ import tkinter
 from tkinter import (Variable, StringVar, IntVar, DoubleVar, BooleanVar, Tcl,
                      TclError)
 from test.support import ALWAYS_EQ
+from test.test_tkinter.support import setUpModule  # noqa: F401
 from test.test_tkinter.support import AbstractDefaultRootTest, tcl_version
 
 
index 20e385ad0b660c1db706b8205ff2ff8bcd0f9b32..f3579a23afc539e922a3cb357c9050cb95be6d59 100644 (file)
@@ -4,6 +4,7 @@ from tkinter import TclError
 import os
 from test.support import requires
 
+from test.test_tkinter.support import setUpModule  # noqa: F401
 from test.test_tkinter.support import (requires_tk, tk_version,
                                   get_tk_patchlevel, widget_eq,
                                   AbstractDefaultRootTest)
index 4a077a0f966fbb3ac13dc0e21e16813fe0001c79..7a47f44ca3822183669ac13c20f48964e60dc572 100644 (file)
@@ -30,6 +30,10 @@ class TestModule(unittest.TestCase):
 
 
 def setUpModule():
+    wantobjects = support.get_resource_value('wantobjects')
+    if wantobjects is not None:
+        unittest.enterModuleContext(
+            support.swap_attr(tkinter, 'wantobjects', int(wantobjects)))
     root = None
     try:
         root = tkinter.Tk()
index 05bca59e703936c96417787f6ad65efc083ed950..669a3e184eb771d7c66ea59b64d16b7925140b56 100644 (file)
@@ -3,6 +3,7 @@ import unittest
 import tkinter
 from tkinter import ttk
 from test.support import requires, gc_collect
+from test.test_tkinter.support import setUpModule  # noqa: F401
 from test.test_tkinter.support import AbstractTkTest, AbstractDefaultRootTest
 
 requires('gui')
index 19918772514ad4ec72d1a470079efe08403093b3..fdbaae1b644e4d2d260feb07c34635f5c80c9216 100644 (file)
@@ -5,6 +5,7 @@ from tkinter import ttk
 from tkinter import TclError
 from test import support
 from test.support import requires
+from test.test_tkinter.support import setUpModule  # noqa: F401
 from test.test_tkinter.support import AbstractTkTest, get_tk_patchlevel
 
 requires('gui')
index f33da2a8848738b691fda1f8d29726b1353896fb..e738fbff82ed43862be27a57faf286536be89620 100644 (file)
@@ -5,6 +5,7 @@ from test.support import requires, gc_collect
 import sys
 
 from test.test_ttk_textonly import MockTclObj
+from test.test_tkinter.support import setUpModule  # noqa: F401
 from test.test_tkinter.support import (
     AbstractTkTest, requires_tk, tk_version, get_tk_patchlevel,
     simulate_mouse_click, AbstractDefaultRootTest)
diff --git a/Misc/NEWS.d/next/Tests/2026-01-08-16-56-59.gh-issue-65784.aKNo1U.rst b/Misc/NEWS.d/next/Tests/2026-01-08-16-56-59.gh-issue-65784.aKNo1U.rst
new file mode 100644 (file)
index 0000000..7d1a153
--- /dev/null
@@ -0,0 +1,3 @@
+Add support for parametrized resource ``wantobjects`` in regrtests,
+which allows to run Tkinter tests with the specified value of
+:data:`!tkinter.wantobjects`, for example ``-u wantobjects=0``.