|
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 ) |