Added new window for Runs (not used yet).

This commit is contained in:
NissimHadar 2018-07-31 17:47:55 -07:00
parent 0cf10a649f
commit 431db7c40f
8 changed files with 479 additions and 51 deletions

View file

@ -11,8 +11,6 @@
#include "TestRailInterface.h" #include "TestRailInterface.h"
#include "Test.h" #include "Test.h"
#include "ui/TestRailSelectorWindow.h"
#include <QDateTime> #include <QDateTime>
#include <QFile> #include <QFile>
#include <QMessageBox> #include <QMessageBox>
@ -20,17 +18,17 @@
TestRailInterface::TestRailInterface() { TestRailInterface::TestRailInterface() {
_busyWindow.setModal(true); _busyWindow.setModal(true);
_testRailSelectorWindow.setModal(true); _testRailTestCasesSelectorWindow.setModal(true);
_testRailSelectorWindow.setURL("https://highfidelity.testrail.net"); _testRailTestCasesSelectorWindow.setURL("https://highfidelity.testrail.net");
////_testRailSelectorWindow.setURL("https://nissimhadar.testrail.io"); ////_testRailTestCasesSelectorWindow.setURL("https://nissimhadar.testrail.io");
_testRailSelectorWindow.setUser("@highfidelity.io"); _testRailTestCasesSelectorWindow.setUser("@highfidelity.io");
////_testRailSelectorWindow.setUser("nissim.hadar@gmail.com"); ////_testRailSelectorWindow.setUser("nissim.hadar@gmail.com");
_testRailSelectorWindow.setProjectID(INTERFACE_PROJECT_ID); _testRailTestCasesSelectorWindow.setProjectID(INTERFACE_PROJECT_ID);
////_testRailSelectorWindow.setProject(1); ////_testRailSelectorWindow.setProject(1);
_testRailSelectorWindow.setSuiteID(INTERFACE_SUITE_ID); _testRailTestCasesSelectorWindow.setSuiteID(INTERFACE_SUITE_ID);
} }
QString TestRailInterface::getObject(const QString& path) { QString TestRailInterface::getObject(const QString& path) {
@ -191,19 +189,19 @@ void TestRailInterface::createStackDotPyScript() {
void TestRailInterface::requestTestRailDataFromUser() { void TestRailInterface::requestTestRailDataFromUser() {
// Make sure correct fields are enabled before calling // Make sure correct fields are enabled before calling
_testRailSelectorWindow.reset(); _testRailTestCasesSelectorWindow.reset();
_testRailSelectorWindow.exec(); _testRailTestCasesSelectorWindow.exec();
if (_testRailSelectorWindow.getUserCancelled()) { if (_testRailTestCasesSelectorWindow.getUserCancelled()) {
return; return;
} }
_url = _testRailSelectorWindow.getURL() + "/"; _url = _testRailTestCasesSelectorWindow.getURL() + "/";
_user = _testRailSelectorWindow.getUser(); _user = _testRailTestCasesSelectorWindow.getUser();
_password = _testRailSelectorWindow.getPassword(); _password = _testRailTestCasesSelectorWindow.getPassword();
////_password = "tutKA76"; ////_password = "tutKA76";
_projectID = QString::number(_testRailSelectorWindow.getProjectID()); _projectID = QString::number(_testRailTestCasesSelectorWindow.getProjectID());
_suiteID = QString::number(_testRailSelectorWindow.getSuiteID()); _suiteID = QString::number(_testRailTestCasesSelectorWindow.getSuiteID());
} }
bool TestRailInterface::isAValidTestDirectory(const QString& directory) { bool TestRailInterface::isAValidTestDirectory(const QString& directory) {
@ -354,11 +352,11 @@ void TestRailInterface::updateMilestonesComboData(int exitCode, QProcess::ExitSt
file.close(); file.close();
// Update the combo // Update the combo
_testRailSelectorWindow.updateMilestoneComboBoxData(_milestoneNames); _testRailTestCasesSelectorWindow.updateMilestoneComboBoxData(_milestoneNames);
_testRailSelectorWindow.exec(); _testRailTestCasesSelectorWindow.exec();
if (_testRailSelectorWindow.getUserCancelled()) { if (_testRailTestCasesSelectorWindow.getUserCancelled()) {
return; return;
} }
@ -674,7 +672,7 @@ void TestRailInterface::processTestPython(const QString& fullDirectory,
QString testContent = QString("Execute instructions in [THIS TEST](") + testMDName + ")"; QString testContent = QString("Execute instructions in [THIS TEST](") + testMDName + ")";
QString testExpected = QString("Refer to the expected result in the linked description."); QString testExpected = QString("Refer to the expected result in the linked description.");
int milestone_id = _milestones[_milestoneNames[_testRailSelectorWindow.getMilestoneID()]]; int milestone_id = _milestones[_milestoneNames[_testRailTestCasesSelectorWindow.getMilestoneID()]];
stream << "data = {\n" stream << "data = {\n"
<< "\t'title': '" << title << "',\n" << "\t'title': '" << title << "',\n"

View file

@ -12,7 +12,7 @@
#define hifi_test_testrail_interface_h #define hifi_test_testrail_interface_h
#include "ui/BusyWindow.h" #include "ui/BusyWindow.h"
#include "ui/TestRailSelectorWindow.h" #include "ui/TestRailTestCasesSelectorWindow.h"
#include <QDirIterator> #include <QDirIterator>
#include <QtXml/QDomDocument> #include <QtXml/QDomDocument>
#include <QProcess> #include <QProcess>
@ -81,7 +81,7 @@ private:
QDomDocument _document; QDomDocument _document;
BusyWindow _busyWindow; BusyWindow _busyWindow;
TestRailSelectorWindow _testRailSelectorWindow; TestRailTestCasesSelectorWindow _testRailTestCasesSelectorWindow;
QString _url; QString _url;
QString _user; QString _user;

View file

@ -1,26 +1,26 @@
// //
// TestRailSelectorWindow.cpp // TestRailRunSelectorWindow.cpp
// //
// Created by Nissim Hadar on 26 Jul 2017. // Created by Nissim Hadar on 31 Jul 2017.
// Copyright 2013 High Fidelity, Inc. // Copyright 2013 High Fidelity, Inc.
// //
// Distributed under the Apache License, Version 2.0. // Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
// //
#include "TestRailSelectorWindow.h" #include "TestRailRunSelectorWindow.h"
#include <QtCore/QFileInfo> #include <QtCore/QFileInfo>
#include <cmath> #include <cmath>
TestRailSelectorWindow::TestRailSelectorWindow(QWidget *parent) { TestRailRunSelectorWindow::TestRailRunSelectorWindow(QWidget *parent) {
setupUi(this); setupUi(this);
projectIDLineEdit->setValidator(new QIntValidator(1, 999, this)); projectIDLineEdit->setValidator(new QIntValidator(1, 999, this));
} }
void TestRailSelectorWindow::reset() { void TestRailRunSelectorWindow::reset() {
urlLineEdit->setDisabled(false); urlLineEdit->setDisabled(false);
userLineEdit->setDisabled(false); userLineEdit->setDisabled(false);
passwordLineEdit->setDisabled(false); passwordLineEdit->setDisabled(false);
@ -30,7 +30,7 @@ void TestRailSelectorWindow::reset() {
milestoneComboBox->setDisabled(true); milestoneComboBox->setDisabled(true);
} }
void TestRailSelectorWindow::on_acceptButton_clicked() { void TestRailRunSelectorWindow::on_acceptButton_clicked() {
urlLineEdit->setDisabled(true); urlLineEdit->setDisabled(true);
userLineEdit->setDisabled(true); userLineEdit->setDisabled(true);
passwordLineEdit->setDisabled(true); passwordLineEdit->setDisabled(true);
@ -41,60 +41,60 @@ void TestRailSelectorWindow::on_acceptButton_clicked() {
close(); close();
} }
void TestRailSelectorWindow::on_OKButton_clicked() { void TestRailRunSelectorWindow::on_OKButton_clicked() {
userCancelled = false; userCancelled = false;
close(); close();
} }
void TestRailSelectorWindow::on_cancelButton_clicked() { void TestRailRunSelectorWindow::on_cancelButton_clicked() {
userCancelled = true; userCancelled = true;
close(); close();
} }
bool TestRailSelectorWindow::getUserCancelled() { bool TestRailRunSelectorWindow::getUserCancelled() {
return userCancelled; return userCancelled;
} }
void TestRailSelectorWindow::setURL(const QString& user) { void TestRailRunSelectorWindow::setURL(const QString& user) {
urlLineEdit->setText(user); urlLineEdit->setText(user);
} }
QString TestRailSelectorWindow::getURL() { QString TestRailRunSelectorWindow::getURL() {
return urlLineEdit->text(); return urlLineEdit->text();
} }
void TestRailSelectorWindow::setUser(const QString& user) { void TestRailRunSelectorWindow::setUser(const QString& user) {
userLineEdit->setText(user); userLineEdit->setText(user);
} }
QString TestRailSelectorWindow::getUser() { QString TestRailRunSelectorWindow::getUser() {
return userLineEdit->text(); return userLineEdit->text();
} }
QString TestRailSelectorWindow::getPassword() { QString TestRailRunSelectorWindow::getPassword() {
return passwordLineEdit->text(); return passwordLineEdit->text();
} }
void TestRailSelectorWindow::setProjectID(const int project) { void TestRailRunSelectorWindow::setProjectID(const int project) {
projectIDLineEdit->setText(QString::number(project)); projectIDLineEdit->setText(QString::number(project));
} }
int TestRailSelectorWindow::getProjectID() { int TestRailRunSelectorWindow::getProjectID() {
return projectIDLineEdit->text().toInt(); return projectIDLineEdit->text().toInt();
} }
void TestRailSelectorWindow::setSuiteID(const int project) { void TestRailRunSelectorWindow::setSuiteID(const int project) {
suiteIDLineEdit->setText(QString::number(project)); suiteIDLineEdit->setText(QString::number(project));
} }
int TestRailSelectorWindow::getSuiteID() { int TestRailRunSelectorWindow::getSuiteID() {
return suiteIDLineEdit->text().toInt(); return suiteIDLineEdit->text().toInt();
} }
void TestRailSelectorWindow::updateMilestoneComboBoxData(QStringList data) { void TestRailRunSelectorWindow::updateMilestoneComboBoxData(QStringList data) {
milestoneComboBox->insertItems(0, data); milestoneComboBox->insertItems(0, data);
} }
int TestRailSelectorWindow::getMilestoneID() { int TestRailRunSelectorWindow::getMilestoneID() {
return milestoneComboBox->currentIndex(); return milestoneComboBox->currentIndex();
} }

View file

@ -0,0 +1,50 @@
//
// TestRailRunSelectorWindow.h
//
// Created by Nissim Hadar on 31 Jul 2017.
// Copyright 2013 High Fidelity, Inc.
//
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
#ifndef hifi_TestRailRunSelectorWindow_h
#define hifi_TestRailRunSelectorWindow_h
#include "ui_TestRailRunSelectorWindow.h"
class TestRailRunSelectorWindow : public QDialog, public Ui::TestRailRunSelectorWindow {
Q_OBJECT
public:
TestRailRunSelectorWindow(QWidget* parent = Q_NULLPTR);
void reset();
bool getUserCancelled();
void setURL(const QString& user);
QString getURL();
void setUser(const QString& user);
QString getUser();
QString getPassword();
void setProjectID(const int project);
int getProjectID();
void setSuiteID(const int project);
int getSuiteID();
bool userCancelled{ false };
void updateMilestoneComboBoxData(QStringList data);
int getMilestoneID();
private slots:
void on_acceptButton_clicked();
void on_OKButton_clicked();
void on_cancelButton_clicked();
};
#endif

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"> <ui version="4.0">
<class>TestRailSelectorWindow</class> <class>TestRailRunSelectorWindow</class>
<widget class="QDialog" name="TestRailSelectorWindow"> <widget class="QDialog" name="TestRailRunSelectorWindow">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
@ -11,7 +11,7 @@
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>TestRail Selector Window</string> <string>TestRail Run Selector Window</string>
</property> </property>
<widget class="QLabel" name="errorLabel"> <widget class="QLabel" name="errorLabel">
<property name="geometry"> <property name="geometry">

View file

@ -0,0 +1,100 @@
//
// TestRailTestCasesSelectorWindow.cpp
//
// Created by Nissim Hadar on 26 Jul 2017.
// Copyright 2013 High Fidelity, Inc.
//
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
#include "TestRailTestCasesSelectorWindow.h"
#include <QtCore/QFileInfo>
#include <cmath>
TestRailTestCasesSelectorWindow::TestRailTestCasesSelectorWindow(QWidget *parent) {
setupUi(this);
projectIDLineEdit->setValidator(new QIntValidator(1, 999, this));
}
void TestRailTestCasesSelectorWindow::reset() {
urlLineEdit->setDisabled(false);
userLineEdit->setDisabled(false);
passwordLineEdit->setDisabled(false);
projectIDLineEdit->setDisabled(false);
OKButton->setDisabled(true);
milestoneComboBox->setDisabled(true);
}
void TestRailTestCasesSelectorWindow::on_acceptButton_clicked() {
urlLineEdit->setDisabled(true);
userLineEdit->setDisabled(true);
passwordLineEdit->setDisabled(true);
projectIDLineEdit->setDisabled(true);
OKButton->setDisabled(false);
milestoneComboBox->setDisabled(false);
close();
}
void TestRailTestCasesSelectorWindow::on_OKButton_clicked() {
userCancelled = false;
close();
}
void TestRailTestCasesSelectorWindow::on_cancelButton_clicked() {
userCancelled = true;
close();
}
bool TestRailTestCasesSelectorWindow::getUserCancelled() {
return userCancelled;
}
void TestRailTestCasesSelectorWindow::setURL(const QString& user) {
urlLineEdit->setText(user);
}
QString TestRailTestCasesSelectorWindow::getURL() {
return urlLineEdit->text();
}
void TestRailTestCasesSelectorWindow::setUser(const QString& user) {
userLineEdit->setText(user);
}
QString TestRailTestCasesSelectorWindow::getUser() {
return userLineEdit->text();
}
QString TestRailTestCasesSelectorWindow::getPassword() {
return passwordLineEdit->text();
}
void TestRailTestCasesSelectorWindow::setProjectID(const int project) {
projectIDLineEdit->setText(QString::number(project));
}
int TestRailTestCasesSelectorWindow::getProjectID() {
return projectIDLineEdit->text().toInt();
}
void TestRailTestCasesSelectorWindow::setSuiteID(const int project) {
suiteIDLineEdit->setText(QString::number(project));
}
int TestRailTestCasesSelectorWindow::getSuiteID() {
return suiteIDLineEdit->text().toInt();
}
void TestRailTestCasesSelectorWindow::updateMilestoneComboBoxData(QStringList data) {
milestoneComboBox->insertItems(0, data);
}
int TestRailTestCasesSelectorWindow::getMilestoneID() {
return milestoneComboBox->currentIndex();
}

View file

@ -1,5 +1,5 @@
// //
// TestRailSelectorWindow.h // TestRailTestCasesSelectorWindow.h
// //
// Created by Nissim Hadar on 26 Jul 2017. // Created by Nissim Hadar on 26 Jul 2017.
// Copyright 2013 High Fidelity, Inc. // Copyright 2013 High Fidelity, Inc.
@ -7,16 +7,16 @@
// Distributed under the Apache License, Version 2.0. // Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
// //
#ifndef hifi_TestRailSelectorWindow_h #ifndef hifi_TestRailTestCasesSelectorWindow_h
#define hifi_TestRailSelectorWindow_h #define hifi_TestRailTestCasesSelectorWindow_h
#include "ui_TestRailSelectorWindow.h" #include "ui_TestRailTestCasesSelectorWindow.h"
class TestRailSelectorWindow : public QDialog, public Ui::TestRailSelectorWindow { class TestRailTestCasesSelectorWindow : public QDialog, public Ui::TestRailTestCasesSelectorWindow {
Q_OBJECT Q_OBJECT
public: public:
TestRailSelectorWindow(QWidget* parent = Q_NULLPTR); TestRailTestCasesSelectorWindow(QWidget* parent = Q_NULLPTR);
void reset(); void reset();

View file

@ -0,0 +1,280 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>TestRailTestCasesSelectorWindow</class>
<widget class="QDialog" name="TestRailTestCasesSelectorWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>489</width>
<height>474</height>
</rect>
</property>
<property name="windowTitle">
<string>TestRail Test Case Selector Window</string>
</property>
<widget class="QLabel" name="errorLabel">
<property name="geometry">
<rect>
<x>30</x>
<y>850</y>
<width>500</width>
<height>28</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>similarity</string>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>70</x>
<y>125</y>
<width>121</width>
<height>20</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>TestRail Password</string>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>70</x>
<y>25</y>
<width>121</width>
<height>20</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>TestRail URL</string>
</property>
</widget>
<widget class="QPushButton" name="OKButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="geometry">
<rect>
<x>120</x>
<y>420</y>
<width>93</width>
<height>28</height>
</rect>
</property>
<property name="text">
<string>OK</string>
</property>
</widget>
<widget class="QPushButton" name="cancelButton">
<property name="geometry">
<rect>
<x>280</x>
<y>420</y>
<width>93</width>
<height>28</height>
</rect>
</property>
<property name="text">
<string>Cancel</string>
</property>
</widget>
<widget class="QLineEdit" name="passwordLineEdit">
<property name="geometry">
<rect>
<x>200</x>
<y>120</y>
<width>231</width>
<height>24</height>
</rect>
</property>
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
</widget>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>70</x>
<y>75</y>
<width>121</width>
<height>20</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>TestRail User</string>
</property>
</widget>
<widget class="QLineEdit" name="projectIDLineEdit">
<property name="geometry">
<rect>
<x>200</x>
<y>170</y>
<width>231</width>
<height>24</height>
</rect>
</property>
<property name="echoMode">
<enum>QLineEdit::Normal</enum>
</property>
</widget>
<widget class="QLabel" name="label_4">
<property name="geometry">
<rect>
<x>70</x>
<y>175</y>
<width>121</width>
<height>20</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>TestRail Project ID</string>
</property>
</widget>
<widget class="QPushButton" name="acceptButton">
<property name="geometry">
<rect>
<x>200</x>
<y>270</y>
<width>231</width>
<height>28</height>
</rect>
</property>
<property name="text">
<string>Accept</string>
</property>
</widget>
<widget class="QComboBox" name="milestoneComboBox">
<property name="enabled">
<bool>false</bool>
</property>
<property name="geometry">
<rect>
<x>270</x>
<y>350</y>
<width>161</width>
<height>22</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="milestoneLabel">
<property name="enabled">
<bool>true</bool>
</property>
<property name="geometry">
<rect>
<x>140</x>
<y>350</y>
<width>121</width>
<height>20</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>TestRail Milestone</string>
</property>
</widget>
<widget class="QLineEdit" name="urlLineEdit">
<property name="geometry">
<rect>
<x>200</x>
<y>20</y>
<width>231</width>
<height>24</height>
</rect>
</property>
<property name="echoMode">
<enum>QLineEdit::Normal</enum>
</property>
</widget>
<widget class="QLineEdit" name="userLineEdit">
<property name="geometry">
<rect>
<x>200</x>
<y>70</y>
<width>231</width>
<height>24</height>
</rect>
</property>
<property name="echoMode">
<enum>QLineEdit::Normal</enum>
</property>
</widget>
<widget class="QLineEdit" name="suiteIDLineEdit">
<property name="geometry">
<rect>
<x>200</x>
<y>215</y>
<width>231</width>
<height>24</height>
</rect>
</property>
<property name="echoMode">
<enum>QLineEdit::Normal</enum>
</property>
</widget>
<widget class="QLabel" name="label_5">
<property name="geometry">
<rect>
<x>70</x>
<y>220</y>
<width>121</width>
<height>20</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>TestRail Suite ID</string>
</property>
</widget>
</widget>
<layoutdefault spacing="6" margin="11"/>
<tabstops>
<tabstop>urlLineEdit</tabstop>
<tabstop>userLineEdit</tabstop>
<tabstop>passwordLineEdit</tabstop>
<tabstop>projectIDLineEdit</tabstop>
<tabstop>suiteIDLineEdit</tabstop>
<tabstop>acceptButton</tabstop>
<tabstop>milestoneComboBox</tabstop>
<tabstop>OKButton</tabstop>
<tabstop>cancelButton</tabstop>
</tabstops>
<resources/>
<connections/>
</ui>