from tkinter import * from idlelib.configdialog import ConfigDialog from idlelib.config import IdleUserConfParser, idleConf from idlelib.idle_test.mock_idle import Func testcfg = { 'main': IdleUserConfParser(''), 'highlight': IdleUserConfParser(''), 'keys': IdleUserConfParser(''), 'extensions': IdleUserConfParser(''), } idleConf.userCfg = testcfg root = Tk() dialog = ConfigDialog(root, 'Test', _utest=True) d = dialog.fontpage dialog.note.select(d) d.set_samples = Func() # don't set samples d.update() fontlist = d.fontlist while True: fontlist.activate(0) font = d.fontlist.get('active') try: i = 0 while True: # Test Down key. fontlist.focus_force() fontlist.update() fontlist.event_generate('') fontlist.event_generate('') down_font = fontlist.get('active') assert down_font != font, 'down font' assert d.font_name.get() in down_font.lower(), 'down name' # Test Up key. fontlist.focus_force() fontlist.update() fontlist.event_generate('') fontlist.event_generate('') up_font = fontlist.get('active') assert up_font == font, 'up font' assert d.font_name.get() in up_font.lower(), 'up name' i += 1 if not i % 1000: print(i) except AssertionError as e: print(i, e)