def test_font(self): sidebar = self.shell.shell_sidebar test_font = 'TkTextFont' def mock_idleconf_GetFont(root, configType, section): return test_font GetFont_patcher = unittest.mock.patch.object( idlelib.sidebar.idleConf, 'GetFont', mock_idleconf_GetFont) GetFont_patcher.start() def cleanup(): GetFont_patcher.stop() sidebar.update_font() self.addCleanup(cleanup) def get_sidebar_font(): canvas = sidebar.canvas texts = list(canvas.find(tk.ALL)) fonts = {canvas.itemcget(text, 'font') for text in texts} self.assertEqual(len(fonts), 1) return next(iter(fonts)) self.assertNotEqual(get_sidebar_font(), test_font) sidebar.update_font() self.assertEqual(get_sidebar_font(), test_font)
def cleanup(): GetFont_patcher.stop() sidebar.update_font()