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

View file

@ -12,7 +12,7 @@
#define hifi_test_testrail_interface_h
#include "ui/BusyWindow.h"
#include "ui/TestRailSelectorWindow.h"
#include "ui/TestRailTestCasesSelectorWindow.h"
#include <QDirIterator>
#include <QtXml/QDomDocument>
#include <QProcess>
@ -81,7 +81,7 @@ private:
QDomDocument _document;
BusyWindow _busyWindow;
TestRailSelectorWindow _testRailSelectorWindow;
TestRailTestCasesSelectorWindow _testRailTestCasesSelectorWindow;
QString _url;
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.
//
// Distributed under the Apache License, Version 2.0.
// 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 <cmath>
TestRailSelectorWindow::TestRailSelectorWindow(QWidget *parent) {
TestRailRunSelectorWindow::TestRailRunSelectorWindow(QWidget *parent) {
setupUi(this);
projectIDLineEdit->setValidator(new QIntValidator(1, 999, this));
}
void TestRailSelectorWindow::reset() {
void TestRailRunSelectorWindow::reset() {
urlLineEdit->setDisabled(false);
userLineEdit->setDisabled(false);
passwordLineEdit->setDisabled(false);
@ -30,7 +30,7 @@ void TestRailSelectorWindow::reset() {
milestoneComboBox->setDisabled(true);
}
void TestRailSelectorWindow::on_acceptButton_clicked() {
void TestRailRunSelectorWindow::on_acceptButton_clicked() {
urlLineEdit->setDisabled(true);
userLineEdit->setDisabled(true);
passwordLineEdit->setDisabled(true);
@ -41,60 +41,60 @@ void TestRailSelectorWindow::on_acceptButton_clicked() {
close();
}
void TestRailSelectorWindow::on_OKButton_clicked() {
void TestRailRunSelectorWindow::on_OKButton_clicked() {
userCancelled = false;
close();
}
void TestRailSelectorWindow::on_cancelButton_clicked() {
void TestRailRunSelectorWindow::on_cancelButton_clicked() {
userCancelled = true;
close();
}
bool TestRailSelectorWindow::getUserCancelled() {
bool TestRailRunSelectorWindow::getUserCancelled() {
return userCancelled;
}
void TestRailSelectorWindow::setURL(const QString& user) {
void TestRailRunSelectorWindow::setURL(const QString& user) {
urlLineEdit->setText(user);
}
QString TestRailSelectorWindow::getURL() {
QString TestRailRunSelectorWindow::getURL() {
return urlLineEdit->text();
}
void TestRailSelectorWindow::setUser(const QString& user) {
void TestRailRunSelectorWindow::setUser(const QString& user) {
userLineEdit->setText(user);
}
QString TestRailSelectorWindow::getUser() {
QString TestRailRunSelectorWindow::getUser() {
return userLineEdit->text();
}
QString TestRailSelectorWindow::getPassword() {
QString TestRailRunSelectorWindow::getPassword() {
return passwordLineEdit->text();
}
void TestRailSelectorWindow::setProjectID(const int project) {
void TestRailRunSelectorWindow::setProjectID(const int project) {
projectIDLineEdit->setText(QString::number(project));
}
int TestRailSelectorWindow::getProjectID() {
int TestRailRunSelectorWindow::getProjectID() {
return projectIDLineEdit->text().toInt();
}
void TestRailSelectorWindow::setSuiteID(const int project) {
void TestRailRunSelectorWindow::setSuiteID(const int project) {
suiteIDLineEdit->setText(QString::number(project));
}
int TestRailSelectorWindow::getSuiteID() {
int TestRailRunSelectorWindow::getSuiteID() {
return suiteIDLineEdit->text().toInt();
}
void TestRailSelectorWindow::updateMilestoneComboBoxData(QStringList data) {
void TestRailRunSelectorWindow::updateMilestoneComboBoxData(QStringList data) {
milestoneComboBox->insertItems(0, data);
}
int TestRailSelectorWindow::getMilestoneID() {
int TestRailRunSelectorWindow::getMilestoneID() {
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"?>
<ui version="4.0">
<class>TestRailSelectorWindow</class>
<widget class="QDialog" name="TestRailSelectorWindow">
<class>TestRailRunSelectorWindow</class>
<widget class="QDialog" name="TestRailRunSelectorWindow">
<property name="geometry">
<rect>
<x>0</x>
@ -11,7 +11,7 @@
</rect>
</property>
<property name="windowTitle">
<string>TestRail Selector Window</string>
<string>TestRail Run Selector Window</string>
</property>
<widget class="QLabel" name="errorLabel">
<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.
// Copyright 2013 High Fidelity, Inc.
@ -7,16 +7,16 @@
// 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_TestRailSelectorWindow_h
#define hifi_TestRailSelectorWindow_h
#ifndef hifi_TestRailTestCasesSelectorWindow_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
public:
TestRailSelectorWindow(QWidget* parent = Q_NULLPTR);
TestRailTestCasesSelectorWindow(QWidget* parent = Q_NULLPTR);
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>