diff options
Diffstat (limited to 'Lib/tkinter/test')
-rw-r--r-- | Lib/tkinter/test/support.py | 10 | ||||
-rw-r--r-- | Lib/tkinter/test/test_tkinter/test_misc.py | 29 | ||||
-rw-r--r-- | Lib/tkinter/test/widget_tests.py | 2 |
3 files changed, 31 insertions, 10 deletions
diff --git a/Lib/tkinter/test/support.py b/Lib/tkinter/test/support.py index dbc47a81e65..9e26d04536f 100644 --- a/Lib/tkinter/test/support.py +++ b/Lib/tkinter/test/support.py @@ -101,15 +101,7 @@ def get_tk_patchlevel(): global _tk_patchlevel if _tk_patchlevel is None: tcl = tkinter.Tcl() - patchlevel = tcl.call('info', 'patchlevel') - m = re.fullmatch(r'(\d+)\.(\d+)([ab.])(\d+)', patchlevel) - major, minor, releaselevel, serial = m.groups() - major, minor, serial = int(major), int(minor), int(serial) - releaselevel = {'a': 'alpha', 'b': 'beta', '.': 'final'}[releaselevel] - if releaselevel == 'final': - _tk_patchlevel = major, minor, serial, releaselevel, 0 - else: - _tk_patchlevel = major, minor, 0, releaselevel, serial + _tk_patchlevel = tcl.info_patchlevel() return _tk_patchlevel units = { diff --git a/Lib/tkinter/test/test_tkinter/test_misc.py b/Lib/tkinter/test/test_tkinter/test_misc.py index 044eb10d688..620b6ed638c 100644 --- a/Lib/tkinter/test/test_tkinter/test_misc.py +++ b/Lib/tkinter/test/test_tkinter/test_misc.py @@ -341,6 +341,35 @@ class MiscTest(AbstractTkTest, unittest.TestCase): self.assertEqual(log, [1]) self.assertTrue(self.root.winfo_exists()) + def test_info_patchlevel(self): + vi = self.root.info_patchlevel() + f = tkinter.Frame(self.root) + self.assertEqual(f.info_patchlevel(), vi) + # The following is almost a copy of tests for sys.version_info. + self.assertIsInstance(vi[:], tuple) + self.assertEqual(len(vi), 5) + self.assertIsInstance(vi[0], int) + self.assertIsInstance(vi[1], int) + self.assertIsInstance(vi[2], int) + self.assertIn(vi[3], ("alpha", "beta", "candidate", "final")) + self.assertIsInstance(vi[4], int) + self.assertIsInstance(vi.major, int) + self.assertIsInstance(vi.minor, int) + self.assertIsInstance(vi.micro, int) + self.assertIn(vi.releaselevel, ("alpha", "beta", "final")) + self.assertIsInstance(vi.serial, int) + self.assertEqual(vi[0], vi.major) + self.assertEqual(vi[1], vi.minor) + self.assertEqual(vi[2], vi.micro) + self.assertEqual(vi[3], vi.releaselevel) + self.assertEqual(vi[4], vi.serial) + self.assertTrue(vi > (1,0,0)) + if vi.releaselevel == 'final': + self.assertEqual(vi.serial, 0) + else: + self.assertEqual(vi.micro, 0) + self.assertTrue(str(vi).startswith(f'{vi.major}.{vi.minor}')) + class DefaultRootTest(AbstractDefaultRootTest, unittest.TestCase): diff --git a/Lib/tkinter/test/widget_tests.py b/Lib/tkinter/test/widget_tests.py index 37d1979c23f..a450544c3ee 100644 --- a/Lib/tkinter/test/widget_tests.py +++ b/Lib/tkinter/test/widget_tests.py @@ -517,4 +517,4 @@ def add_standard_options(*source_classes): def setUpModule(): if test.support.verbose: tcl = tkinter.Tcl() - print('patchlevel =', tcl.call('info', 'patchlevel')) + print('patchlevel =', tcl.call('info', 'patchlevel'), flush=True) |