17db96d56Sopenharmony_ciimport unittest
27db96d56Sopenharmony_ciimport tkinter
37db96d56Sopenharmony_cifrom test.support import requires, swap_attr
47db96d56Sopenharmony_cifrom tkinter.test.support import AbstractDefaultRootTest
57db96d56Sopenharmony_cifrom tkinter.simpledialog import Dialog, askinteger
67db96d56Sopenharmony_ci
77db96d56Sopenharmony_cirequires('gui')
87db96d56Sopenharmony_ci
97db96d56Sopenharmony_ci
107db96d56Sopenharmony_ciclass DefaultRootTest(AbstractDefaultRootTest, unittest.TestCase):
117db96d56Sopenharmony_ci
127db96d56Sopenharmony_ci    def test_askinteger(self):
137db96d56Sopenharmony_ci        @staticmethod
147db96d56Sopenharmony_ci        def mock_wait_window(w):
157db96d56Sopenharmony_ci            nonlocal ismapped
167db96d56Sopenharmony_ci            ismapped = w.master.winfo_ismapped()
177db96d56Sopenharmony_ci            w.destroy()
187db96d56Sopenharmony_ci
197db96d56Sopenharmony_ci        with swap_attr(Dialog, 'wait_window', mock_wait_window):
207db96d56Sopenharmony_ci            ismapped = None
217db96d56Sopenharmony_ci            askinteger("Go To Line", "Line number")
227db96d56Sopenharmony_ci            self.assertEqual(ismapped, False)
237db96d56Sopenharmony_ci
247db96d56Sopenharmony_ci            root = tkinter.Tk()
257db96d56Sopenharmony_ci            ismapped = None
267db96d56Sopenharmony_ci            askinteger("Go To Line", "Line number")
277db96d56Sopenharmony_ci            self.assertEqual(ismapped, True)
287db96d56Sopenharmony_ci            root.destroy()
297db96d56Sopenharmony_ci
307db96d56Sopenharmony_ci            tkinter.NoDefaultRoot()
317db96d56Sopenharmony_ci            self.assertRaises(RuntimeError, askinteger, "Go To Line", "Line number")
327db96d56Sopenharmony_ci
337db96d56Sopenharmony_ci
347db96d56Sopenharmony_ciif __name__ == "__main__":
357db96d56Sopenharmony_ci    unittest.main()
36