aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib/tkinter/test
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/tkinter/test')
-rw-r--r--Lib/tkinter/test/support.py10
-rw-r--r--Lib/tkinter/test/test_tkinter/test_misc.py29
-rw-r--r--Lib/tkinter/test/widget_tests.py2
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)