17db96d56Sopenharmony_ciimport unittest 27db96d56Sopenharmony_ciimport tkinter 37db96d56Sopenharmony_cifrom test.support import requires, swap_attr 47db96d56Sopenharmony_cifrom tkinter.test.support import AbstractDefaultRootTest 57db96d56Sopenharmony_cifrom tkinter.commondialog import Dialog 67db96d56Sopenharmony_cifrom tkinter.messagebox import showinfo 77db96d56Sopenharmony_ci 87db96d56Sopenharmony_cirequires('gui') 97db96d56Sopenharmony_ci 107db96d56Sopenharmony_ci 117db96d56Sopenharmony_ciclass DefaultRootTest(AbstractDefaultRootTest, unittest.TestCase): 127db96d56Sopenharmony_ci 137db96d56Sopenharmony_ci def test_showinfo(self): 147db96d56Sopenharmony_ci def test_callback(dialog, master): 157db96d56Sopenharmony_ci nonlocal ismapped 167db96d56Sopenharmony_ci master.update() 177db96d56Sopenharmony_ci ismapped = master.winfo_ismapped() 187db96d56Sopenharmony_ci raise ZeroDivisionError 197db96d56Sopenharmony_ci 207db96d56Sopenharmony_ci with swap_attr(Dialog, '_test_callback', test_callback): 217db96d56Sopenharmony_ci ismapped = None 227db96d56Sopenharmony_ci self.assertRaises(ZeroDivisionError, showinfo, "Spam", "Egg Information") 237db96d56Sopenharmony_ci self.assertEqual(ismapped, False) 247db96d56Sopenharmony_ci 257db96d56Sopenharmony_ci root = tkinter.Tk() 267db96d56Sopenharmony_ci ismapped = None 277db96d56Sopenharmony_ci self.assertRaises(ZeroDivisionError, showinfo, "Spam", "Egg Information") 287db96d56Sopenharmony_ci self.assertEqual(ismapped, True) 297db96d56Sopenharmony_ci root.destroy() 307db96d56Sopenharmony_ci 317db96d56Sopenharmony_ci tkinter.NoDefaultRoot() 327db96d56Sopenharmony_ci self.assertRaises(RuntimeError, showinfo, "Spam", "Egg Information") 337db96d56Sopenharmony_ci 347db96d56Sopenharmony_ci 357db96d56Sopenharmony_ciif __name__ == "__main__": 367db96d56Sopenharmony_ci unittest.main() 37