1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
# (C) Copyright 2005-2023 Enthought, Inc., Austin, TX
# All rights reserved.
#
# This software is provided without warranty under the terms of the BSD
# license included in LICENSE.txt and may be redistributed only under
# the conditions described in the aforementioned license. The license
# is also available online at http://www.enthought.com/licenses/BSD.txt
#
# Thanks for using Enthought open source!
"""
Qt-specific tests for the MessageDialog
"""
import contextlib
import unittest
from pyface.api import MessageDialog
from pyface.qt import QtCore, QtGui
from pyface.ui.qt.util.gui_test_assistant import GuiTestAssistant
class TestMessageDialog(GuiTestAssistant, unittest.TestCase):
def test_escape_button_no_details(self):
dialog = MessageDialog(
parent=None,
title="Dialog title",
message="Printer on fire",
informative="Your printer is on fire",
severity="error",
size=(600, 400),
)
with self.create_dialog(dialog):
escape_button = dialog.control.escapeButton()
ok_button = dialog.control.button(QtGui.QMessageBox.StandardButton.Ok)
# It's possible for both the above to be None, so double check.
self.assertIsNotNone(escape_button)
self.assertIs(escape_button, ok_button)
def test_escape_button_with_details(self):
dialog = MessageDialog(
parent=None,
title="Dialog title",
message="Printer on fire",
informative="Your printer is on fire",
details="Temperature exceeds 1000 degrees",
severity="error",
size=(600, 400),
)
with self.create_dialog(dialog):
escape_button = dialog.control.escapeButton()
ok_button = dialog.control.button(QtGui.QMessageBox.StandardButton.Ok)
# It's possible for both the above to be None, so double check.
self.assertIsNotNone(escape_button)
self.assertIs(escape_button, ok_button)
def test_text_format(self):
dialog = MessageDialog(
parent=None,
title="Dialog title",
message="Printer on fire",
informative="Your printer is on fire",
details="Temperature exceeds 1000 degrees",
severity="error",
text_format="plain",
size=(600, 400),
)
with self.create_dialog(dialog):
text_format = dialog.control.textFormat()
self.assertEqual(text_format, QtCore.Qt.TextFormat.PlainText)
@contextlib.contextmanager
def create_dialog(self, dialog):
"""
Create a dialog, then destroy at the end of a with block.
"""
with self.event_loop():
dialog.create()
try:
yield
finally:
with self.event_loop():
dialog.destroy()
|