-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathdialog_example_2_test.py
120 lines (93 loc) · 3.38 KB
/
dialog_example_2_test.py
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
import sys
import unittest
from PySide2 import QtWidgets
from PySide2.QtCore import Qt
from PySide2.QtTest import QTest
from eqt.ui import FormDialog
from . import skip_ci
class MainUI(QtWidgets.QMainWindow):
def __init__(self, parent=None):
QtWidgets.QMainWindow.__init__(self, parent)
pb = QtWidgets.QPushButton(self)
pb.setText("Open Dialog with form layout")
pb.clicked.connect(lambda: self.openFormDialog())
layout = QtWidgets.QHBoxLayout()
layout.addWidget(pb)
widg = QtWidgets.QWidget()
widg.setLayout(layout)
self.push_button = pb
self.setCentralWidget(widg)
self.show()
def openFormDialog(self):
dialog = FormDialog(parent=self, title='Example')
dialog.Ok.clicked.connect(lambda: self.accepted())
dialog.Cancel.clicked.connect(lambda: self.rejected())
# Example on how to add elements to the
# add input 1 as QLineEdit
qlabel = QtWidgets.QLabel(dialog.groupBox)
qlabel.setText("Input 1: ")
qwidget = QtWidgets.QLineEdit(dialog.groupBox)
qwidget.setClearButtonEnabled(True)
# finally add to the form widget
dialog.addWidget(qwidget, qlabel, 'input1', layout='form')
# add input 2 as QComboBox
qlabel = QtWidgets.QLabel(dialog.groupBox)
qlabel.setText("Input 2: ")
qwidget = QtWidgets.QComboBox(dialog.groupBox)
qwidget.addItem("option 1")
qwidget.addItem("option 2")
qwidget.setCurrentIndex(0)
qwidget.setEnabled(True)
# finally add to the form widget
dialog.addWidget(qwidget, qlabel, 'input2')
# store a reference
self.dialog = dialog
dialog.open()
def accepted(self):
print("accepted")
print(self.dialog.widgets['input1_field'].text())
print(self.dialog.widgets['input2_field'].currentText())
self.dialog.close()
def rejected(self):
print("rejected")
self.dialog.close()
_instance = None
class DialogTest(unittest.TestCase):
'''Test the margarita mixer GUI'''
@skip_ci
def setUp(self):
'''Create the GUI'''
super(DialogTest, self).setUp()
global _instance
if _instance is None:
_instance = QtWidgets.QApplication(sys.argv)
self.app = _instance
window = MainUI()
self.app = _instance
self.window = window
# QTest.mouseClick(self.window.push_button, Qt.LeftButton)
# self.dialog = window.dialog
@skip_ci
def tearDown(self):
del self.app
super(DialogTest, self).tearDown()
@skip_ci
def test_close(self):
self.window.close()
self.assertTrue(True)
@skip_ci
def test_openclose_dialog(self):
QTest.mouseClick(self.window.push_button, Qt.LeftButton)
dialog = self.window.dialog
print(dialog)
dialog.close()
def stest_defaults(self):
'''Test the GUI in its default state'''
self.dialog = self.window.dialog
print("test1")
self.assertEqual(self.window.dialog.widgets['input1_field'].text(), '')
print("test2")
self.assertEqual(self.window.dialog.widgets['input2_field'].currentIndex(), 0)
print("click")
print(self.window.dialog.Ok, self.window.dialog.Cancel)
QTest.mouseClick(self.window.push_button, Qt.LeftButton)