ProjectDjango/DjangoTestDataDialog.py

changeset 110
da5ee5012004
child 113
9b7adb12b409
equal deleted inserted replaced
109:0f579ef4f7ad 110:da5ee5012004
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2017 Detlev Offenbach <detlev@die-offenbachs.de>
4 #
5
6 """
7 Module implementing a dialog to enter some data for running tests.
8 """
9
10 from PyQt5.QtWidgets import QDialog
11
12 from .Ui_DjangoTestDataDialog import Ui_DjangoTestDataDialog
13
14
15 class DjangoTestDataDialog(QDialog, Ui_DjangoTestDataDialog):
16 """
17 Class implementing a dialog to enter some data for running tests.
18 """
19 def __init__(self, project, parent=None):
20 """
21 Constructor
22
23 @param project reference to the Django project object
24 @type Project
25 @param parent reference to the parent widget
26 @type QWidget
27 """
28 super(DjangoTestDataDialog, self).__init__(parent)
29 self.setupUi(self)
30
31 self.__project = project
32
33 self.labelsComboBox.addItems(
34 self.__project.getRecentTestData("RecentTestLabels"))
35 self.tagsComboBox.addItems(
36 self.__project.getRecentTestData("RecentTestTags"))
37 self.excludeTagsComboBox.addItems(
38 self.__project.getRecentTestData("RecentTestExcludeTags"))
39
40 if self.__project.getDjangoVersion() < (1, 10, 0):
41 self.tagsComboBox.setEnabled(False)
42 self.excludeTagsComboBox.setEnabled(False)
43
44 msh = self.minimumSizeHint()
45 self.resize(max(self.width(), msh.width()), msh.height())
46
47 def getData(self):
48 """
49 Public method to get the entered data.
50
51 @return tuple containing a list of test labels, a test file pattern,
52 a list of test tags, a list of test tags to be skipped, a flag
53 indicating to keep the test database and a flag indicating to run
54 the tests in reverse order
55 @rtype tuple of
56 (list of str, str, list of str, list of str, bool, bool)
57 """
58 labelsStr = self.labelsComboBox.currentText()
59 if labelsStr:
60 self.__project.setMostRecentTestData("RecentTestLabels", labelsStr)
61 labels = labelsStr.split()
62 else:
63 labels = []
64
65 tagsStr = self.labelsComboBox.currentText()
66 if tagsStr:
67 self.__project.setMostRecentTestData("RecentTestTags", tagsStr)
68 tags = tagsStr.split()
69 else:
70 tags = []
71
72 excludeTagsStr = self.labelsComboBox.currentText()
73 if excludeTagsStr:
74 self.__project.setMostRecentTestData("RecentTestExcludeTags",
75 excludeTagsStr)
76 excludeTags = excludeTagsStr.split()
77 else:
78 excludeTags = []
79
80 return (
81 labels,
82 self.testFilePatternsEdit.text(),
83 tags,
84 excludeTags,
85 self.keepCheckBox.isChecked(),
86 self.reverseCheckBox.isChecked(),
87 )

eric ide

mercurial