| import os.path | |
| import unittest | |
| from test import support | |
| from test.support import import_helper | |
| if support.check_sanitizer(address=True, memory=True): | |
| raise unittest.SkipTest("Tests involving libX11 can SEGFAULT on ASAN/MSAN builds") | |
| # Skip this test if _tkinter wasn't built. | |
| import_helper.import_module('_tkinter') | |
| # Skip test if tk cannot be initialized. | |
| support.requires('gui') | |
| import tkinter | |
| from _tkinter import TclError | |
| from tkinter import ttk | |
| class TestModule(unittest.TestCase): | |
| def test_deprecated__version__(self): | |
| with self.assertWarnsRegex( | |
| DeprecationWarning, | |
| "'__version__' is deprecated and slated for removal in Python 3.20", | |
| ) as cm: | |
| getattr(ttk, "__version__") | |
| self.assertEqual(cm.filename, __file__) | |
| 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() | |
| button = ttk.Button(root) | |
| button.destroy() | |
| del button | |
| except TclError as msg: | |
| # assuming ttk is not available | |
| raise unittest.SkipTest("ttk not available: %s" % msg) | |
| finally: | |
| if root is not None: | |
| root.destroy() | |
| del root | |
| def load_tests(*args): | |
| return support.load_package_tests(os.path.dirname(__file__), *args) |