|
"Test mainmenu, coverage 100%." |
|
|
|
|
|
from idlelib import mainmenu |
|
import re |
|
import unittest |
|
|
|
|
|
class MainMenuTest(unittest.TestCase): |
|
|
|
def test_menudefs(self): |
|
actual = [item[0] for item in mainmenu.menudefs] |
|
expect = ['file', 'edit', 'format', 'run', 'shell', |
|
'debug', 'options', 'window', 'help'] |
|
self.assertEqual(actual, expect) |
|
|
|
def test_default_keydefs(self): |
|
self.assertGreaterEqual(len(mainmenu.default_keydefs), 50) |
|
|
|
def test_tcl_indexes(self): |
|
|
|
|
|
|
|
for menu, pattern in ( |
|
('debug', '.*tack.*iewer'), |
|
('options', '.*ode.*ontext'), |
|
('options', '.*ine.*umbers'), |
|
): |
|
with self.subTest(menu=menu, pattern=pattern): |
|
for menutup in mainmenu.menudefs: |
|
if menutup[0] == menu: |
|
break |
|
else: |
|
self.assertTrue(0, f"{menu} not in menudefs") |
|
self.assertTrue(any(re.search(pattern, menuitem[0]) |
|
for menuitem in menutup[1] |
|
if menuitem is not None), |
|
f"{pattern} not in {menu}") |
|
|
|
|
|
if __name__ == '__main__': |
|
unittest.main(verbosity=2) |
|
|