aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib/test/test_tkinter/test_messagebox.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_tkinter/test_messagebox.py')
-rw-r--r--Lib/test/test_tkinter/test_messagebox.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/Lib/test/test_tkinter/test_messagebox.py b/Lib/test/test_tkinter/test_messagebox.py
new file mode 100644
index 00000000000..f41bdc98286
--- /dev/null
+++ b/Lib/test/test_tkinter/test_messagebox.py
@@ -0,0 +1,36 @@
+import unittest
+import tkinter
+from test.support import requires, swap_attr
+from test.test_tkinter.support import AbstractDefaultRootTest
+from tkinter.commondialog import Dialog
+from tkinter.messagebox import showinfo
+
+requires('gui')
+
+
+class DefaultRootTest(AbstractDefaultRootTest, unittest.TestCase):
+
+ def test_showinfo(self):
+ def test_callback(dialog, master):
+ nonlocal ismapped
+ master.update()
+ ismapped = master.winfo_ismapped()
+ raise ZeroDivisionError
+
+ with swap_attr(Dialog, '_test_callback', test_callback):
+ ismapped = None
+ self.assertRaises(ZeroDivisionError, showinfo, "Spam", "Egg Information")
+ self.assertEqual(ismapped, False)
+
+ root = tkinter.Tk()
+ ismapped = None
+ self.assertRaises(ZeroDivisionError, showinfo, "Spam", "Egg Information")
+ self.assertEqual(ismapped, True)
+ root.destroy()
+
+ tkinter.NoDefaultRoot()
+ self.assertRaises(RuntimeError, showinfo, "Spam", "Egg Information")
+
+
+if __name__ == "__main__":
+ unittest.main()