From 5e92603fccf077a9a079d955877ae163535e45ba Mon Sep 17 00:00:00 2001 From: lakshyacis Date: Fri, 13 Mar 2020 20:10:20 +0530 Subject: [PATCH] Graphical Qt Test popupmenu automation --- src/bitmessageqt/__init__.py | 17 +- .../test_addressgeneration.py | 67 +- src/graphicaltesting/test_addsubscription.py | 58 +- src/graphicaltesting/test_blackwhitelist.py | 72 ++- src/graphicaltesting/test_chans.py | 3 +- src/graphicaltesting/test_inbox_popmenu.py | 134 ---- src/graphicaltesting/test_messagesend.py | 62 +- src/graphicaltesting/test_networkstatus.py | 6 +- src/graphicaltesting/test_popupmenu.py | 607 ++++++++++++++++++ src/graphicaltesting/test_quit.py | 1 + src/graphicaltesting/test_settingwindow.py | 57 +- src/graphicaltesting/testinitialization.py | 28 +- src/{gtesting.py => test_qt.py} | 10 +- 13 files changed, 798 insertions(+), 324 deletions(-) delete mode 100644 src/graphicaltesting/test_inbox_popmenu.py create mode 100644 src/graphicaltesting/test_popupmenu.py rename src/{gtesting.py => test_qt.py} (50%) diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py index 33291ece..733265f6 100644 --- a/src/bitmessageqt/__init__.py +++ b/src/bitmessageqt/__init__.py @@ -2514,7 +2514,6 @@ class MyForm(settingsmixin.SMainWindow): self.ui.textEditMessage.setFocus() def on_action_MarkAllRead(self): - import state if state.qttesting: tableWidget = self.getCurrentMessagelist() else: @@ -3287,8 +3286,12 @@ class MyForm(settingsmixin.SMainWindow): self.popMenuAddressBook.addSeparator() for plugin in self.menu_plugins['address']: self.popMenuAddressBook.addAction(plugin) - self.popMenuAddressBook.exec_( - self.ui.tableWidgetAddressBook.mapToGlobal(point)) + if state.qttesting: + self.popMenuAddressBook.move(point.x(), point.y()) + self.popMenuAddressBook.show() + else: + self.popMenuAddressBook.exec_( + self.ui.tableWidgetAddressBook.mapToGlobal(point)) # Group of functions for the Subscriptions dialog box def on_action_SubscriptionsNew(self): @@ -3368,8 +3371,12 @@ class MyForm(settingsmixin.SMainWindow): self.popMenuSubscriptions.addAction(self.actionMarkAllRead) if self.popMenuSubscriptions.isEmpty(): return - self.popMenuSubscriptions.exec_( - self.ui.treeWidgetSubscriptions.mapToGlobal(point)) + if state.qttesting: + self.popMenuSubscriptions.move(point.x(), point.y()) + self.popMenuSubscriptions.show() + else: + self.popMenuSubscriptions.exec_( + self.ui.treeWidgetSubscriptions.mapToGlobal(point)) def widgetConvert(self, widget): if widget == self.ui.tableWidgetInbox: diff --git a/src/graphicaltesting/test_addressgeneration.py b/src/graphicaltesting/test_addressgeneration.py index 849217f2..e049efe3 100644 --- a/src/graphicaltesting/test_addressgeneration.py +++ b/src/graphicaltesting/test_addressgeneration.py @@ -14,85 +14,74 @@ class BitmessageTest_AddressGeneration(BitmessageTestCase): def test_generateaddress(self): """Method clicks on new label pushbutton and create new address with random label""" + print("=====================Test - Generating Address=====================") try: - address_count = len(BMConfigParser().addresses()) QTest.qWait(500) + bm_addresses = BMConfigParser().addresses() self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.inbox) QTest.qWait(500) - self.myapp.ui.pushButtonNewAddress.setStyleSheet("QPushButton {background-color: #FF5733; color: white;}") QTest.qWait(50) self.myapp.ui.pushButtonNewAddress.setStyleSheet("") - label_gen_obj = address_dialogs.NewAddressDialog() - QTest.qWait(1000) - + QTest.qWait(750) random_label = "" - for _ in range(12): + for _ in range(15): random_label += choice(ascii_lowercase) label_gen_obj.newaddresslabel.setText(random_label) - QTest.qWait(2) - - QTest.qWait(600) + QTest.qWait(4) + QTest.qWait(500) label_gen_obj.accept() - QTest.qWait(800) - - self.assertEqual(len(BMConfigParser().addresses()), address_count + 1) - self.assertEqual(str(BMConfigParser().get(BMConfigParser().addresses()[-1], "label")), random_label) - print("\n Test Pass :--> Address Generated Successfully \n") - self.assertTrue(True, " \n Test Pass :--> Address Generated Successfully") + QTest.qWait(750) + new_bm_addresses = BMConfigParser().addresses() + self.assertEqual(len(new_bm_addresses), len(bm_addresses) + 1) + self.assertEqual(str(BMConfigParser().get(new_bm_addresses[-1], "label")), random_label) + print("Test Pass:--> Address Generated Successfully") return 1 # if every thing is ok except: - print("\n Test Fail :--> Address Generatation Failed or Taking too much time to generate address \n") - self.assertTrue(False, " \n Test Fail :--> Address Generation Failed!") + print("Test Fail:--> Address Generatation Failed or Taking too much time to generate address") return 0 # if test fail def test_generateaddresswithpassphrase(self): """Clicks on the create new label with passphrase pushbutton and generates 8 address""" + print("=====================Test - Generating Address with passphrase=====================") try: - address_count = len(BMConfigParser().addresses()) QTest.qWait(500) + bm_addresses = BMConfigParser().addresses() self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.inbox) QTest.qWait(500) - self.myapp.ui.pushButtonNewAddress.setStyleSheet("QPushButton {background-color: #FF5733; color: white;}") QTest.qWait(50) self.myapp.ui.pushButtonNewAddress.setStyleSheet("") - label_gen_obj = address_dialogs.NewAddressDialog() - QTest.qWait(500) + QTest.qWait(750) label_gen_obj.radioButtonDeterministicAddress.click() - QTest.qWait(400) - - random_password1, random_password2 = "", "" - for i in range(15): + QTest.qWait(250) + random_password1 = "" + for _ in range(15): random_password1 += choice(ascii_lowercase) label_gen_obj.lineEditPassphrase.setText(random_password1) - QTest.qWait(2) + QTest.qWait(4) QTest.qWait(500) - + random_password2 = "" for i in random_password1: random_password2 += i label_gen_obj.lineEditPassphraseAgain.setText(random_password2) QTest.qWait(2) - - QTest.qWait(850) + QTest.qWait(500) label_gen_obj.accept() + QTest.qWait(750) self.assertEqual(random_password1, random_password2) - print(" Creating Address ......") + print(" Creating 8 Addresses. Please Wait! ......") QTest.qWait(2500) - print(" Please Wait.! Creating 8 Address ......") + print(" Generating ......... ") QTest.qWait(2500) - self.assertEqual(len(BMConfigParser().addresses()), address_count + 8) - QTest.qWait(100) - print("\n Test Pass :--> Address Generated Successfully with passphrase \n") - self.assertTrue(True, " \n Test Pass :--> Address Generated Successfully with passphrase") + self.assertEqual(len(BMConfigParser().addresses()), len(bm_addresses) + 8) + print("Test Pass:--> Address Generated Successfully with passphrase") return 1 except: - QTest.qWait(100) print( - "\n Test Fail :--> Address Generatation Failed with passphrase" - " or Taking too much time to generate address \n" + "Test Fail:--> Address Generatation Failed" + " with passphrase or Taking too much time to generate address" ) - self.assertTrue(False, " \n Test Fail :--> Address Generatation Failed with passphrase") return 0 diff --git a/src/graphicaltesting/test_addsubscription.py b/src/graphicaltesting/test_addsubscription.py index 8c0723de..b4b8bc18 100644 --- a/src/graphicaltesting/test_addsubscription.py +++ b/src/graphicaltesting/test_addsubscription.py @@ -2,7 +2,8 @@ from random import choice from string import ascii_lowercase -from PyQt4 import QtCore, QtGui +from PyQt4 import QtGui +from PyQt4.QtCore import QTimer from PyQt4.QtTest import QTest import shared @@ -17,63 +18,56 @@ class BitmessageTest_AddSubscription(BitmessageTestCase): def test_subscription(self): """Test for subscription functionality""" + print("=====================Test - Subscribe Address=====================") try: if BMConfigParser().addresses(): QTest.qWait(500) self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.subscriptions) QTest.qWait(500) - - self.dialog = dialogs.NewSubscriptionDialog(self.myapp) - self.dialog.show() - QTest.qWait(800) - + self.myapp.ui.pushButtonAddSubscription.setStyleSheet( + "QPushButton {background-color: #FF5733; color: white;}" + ) + QTest.qWait(50) + self.myapp.ui.pushButtonAddSubscription.setStyleSheet("") + dialog = dialogs.NewSubscriptionDialog(self.myapp) + dialog.show() + QTest.qWait(750) random_label = "" for _ in range(30): random_label += choice(ascii_lowercase) - self.dialog.lineEditLabel.setText(random_label) - QTest.qWait(5) + dialog.lineEditLabel.setText(random_label) + QTest.qWait(4) QTest.qWait(500) - rand_address = choice(BMConfigParser().addresses()) random_address = "" - for x in range(len(rand_address)): - random_address += rand_address[x] - self.dialog.lineEditAddress.setText(random_address) - QTest.qWait(5) + for i, _ in enumerate(rand_address): + random_address += rand_address[i] + dialog.lineEditAddress.setText(random_address) + QTest.qWait(4) QTest.qWait(500) - - QtCore.QTimer.singleShot(0, self.dialog.buttonBox.button(QtGui.QDialogButtonBox.Ok).clicked) - + QTimer.singleShot(0, dialog.buttonBox.button(QtGui.QDialogButtonBox.Ok).clicked) try: QTest.qWait(800) - address, label = self.dialog.data - except AttributeError: + address, label = dialog.data + except: + print("Test Fail:--> Error, While Creating subscription list") QTest.qWait(500) - print("\n Test Fail :--> Error, While Creating subscription list. \n") return 0 - if shared.isAddressInMySubscriptionsList(address): print( - "\n Test Fail :--> You cannot add the same address to your subscriptions twice." - " Perhaps rename the existing one if you want. \n" + "Test Fail:--> You cannot add the same address to your subscriptions twice." + " Perhaps rename the existing one if you want" ) QTest.qWait(500) return 0 - self.myapp.addSubscription(address, label) sub_add = sqlQuery("select address from subscriptions where label='" + random_label + "'")[0] self.assertEqual(random_address, sub_add[0]) - print("\n Test Pass :--> Subscription Done Successfully! \n") - QTest.qWait(100) - self.assertTrue(True, " \n Test Pass :--> Subscription Done Successfully!") + print("Test Pass:--> Subscription Done Successfully") return 1 else: - QTest.qWait(100) - print("\n Test Fail :--> No Address Found! \n") - self.assertTrue(False, " \n Test Fail :--> No Address Found!") + print("Test Fail:--> No Address Found") return 0 except: - QTest.qWait(100) - print("\n Test Fail :--> Error Occured while adding address to subscription list! \n") - self.assertTrue(False, " \n Test Fail :--> Error Occured while adding address to subscription list! ") + print("Test Fail:--> Error Occured while adding address to subscription list") return 0 diff --git a/src/graphicaltesting/test_blackwhitelist.py b/src/graphicaltesting/test_blackwhitelist.py index 697302ef..37836c90 100644 --- a/src/graphicaltesting/test_blackwhitelist.py +++ b/src/graphicaltesting/test_blackwhitelist.py @@ -20,49 +20,62 @@ class BitmessageTest_BlackandWhiteList(BitmessageTestCase): def test_blackwhitelist(self): """Tab switch to blacklist and add the address on blacklist and whitelist""" + print("=====================Test - Adding Address to Black/WhiteList=====================") + self.blacklist_obj = blacklist.Blacklist() try: QTest.qWait(500) self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.blackwhitelist) QTest.qWait(500) - - self.blacklist_obj = blacklist.Blacklist() self.dialog = AddAddressDialog(self.myapp) blacklistcount = len(sqlQuery("Select * from blacklist")) - self.myapp.ui.blackwhitelist.radioButtonBlacklist.click() - self.checkblacklist(self.myapp) + self.myapp.ui.blackwhitelist.pushButtonAddBlacklist.setStyleSheet( + "QPushButton {background-color: #FF5733; color: white;}" + ) + QTest.qWait(50) + self.myapp.ui.blackwhitelist.pushButtonAddBlacklist.setStyleSheet("") + self.checkblacklist() + self.myapp.ui.blackwhitelist.radioButtonWhitelist.click() + self.myapp.ui.blackwhitelist.radioButtonBlacklist.click() + QTest.qWait(500) + whitelistcount = len(sqlQuery("Select * from whitelist")) + self.myapp.ui.blackwhitelist.radioButtonWhitelist.click() + self.myapp.ui.blackwhitelist.pushButtonAddBlacklist.setStyleSheet( + "QPushButton {background-color: #FF5733; color: white;}" + ) + QTest.qWait(50) + self.myapp.ui.blackwhitelist.pushButtonAddBlacklist.setStyleSheet("") + self.checkblacklist() + self.myapp.ui.blackwhitelist.radioButtonBlacklist.click() + self.myapp.ui.blackwhitelist.radioButtonWhitelist.click() QTest.qWait(500) self.assertEqual(blacklistcount + 1, len(sqlQuery("Select * from blacklist"))) - whitelistcount = len(sqlQuery("Select * from whitelist")) - - self.myapp.ui.blackwhitelist.radioButtonWhitelist.click() - self.checkblacklist(self.myapp) - QTest.qWait(500) self.assertEqual(whitelistcount + 1, len(sqlQuery("Select * from whitelist"))) - self.assertTrue(True, " \n Test Pass :--> Black/WhiteList Functionality Tested Successfully!") + print("Black/WhiteList Functionality Tested Successfully") + return 1 except: - self.assertTrue(False, " \n Test Fail :--> Black/WhiteList Functionality Failed!.") + print("Black/WhiteList Functionality Failed") + return 0 - def checkblacklist(self, myapp): + def checkblacklist(self): # pylint: disable=too-many-statements """fill blacklist and whitelist fields""" - # pylint: disable=too-many-statements - QTest.qWait(1000) self.dialog.lineEditLabel.setText("") self.dialog.lineEditAddress.setText("") + QTest.qWait(350) self.dialog.show() - QTest.qWait(800) + QTest.qWait(750) random_label = "" for _ in range(30): random_label += choice(ascii_lowercase) self.dialog.lineEditLabel.setText(random_label) - QTest.qWait(5) + QTest.qWait(4) QTest.qWait(500) rand_address = choice(BMConfigParser().addresses()) random_address = "" - for x in range(len(rand_address)): - random_address += rand_address[x] + for i, _ in enumerate(rand_address): + random_address += rand_address[i] self.dialog.lineEditAddress.setText(random_address) - QTest.qWait(5) + QTest.qWait(4) QTest.qWait(500) QtCore.QTimer.singleShot(0, self.dialog.buttonBox.button(QtGui.QDialogButtonBox.Ok).clicked) if self.dialog.labelAddressCheck.text() == _translate("MainWindow", "Address is valid."): @@ -88,30 +101,23 @@ class BitmessageTest_BlackandWhiteList(BitmessageTestCase): sql = """INSERT INTO blacklist VALUES (?,?,?)""" sqlExecute(sql, *t) black_list_value = sqlQuery("Select address from blacklist where label='" + random_label + "'")[0] - print("\n Test Pass :--> Address Added to the blacklist! \n") self.assertEqual(black_list_value[0], random_address) - return + print("Test Pass:--> Address Added to the blacklist") + return 1 else: sql = """INSERT INTO whitelist VALUES (?,?,?)""" sqlExecute(sql, *t) white_list_value = sqlQuery("Select address from whitelist where label='" + random_label + "'")[0] - print("\n Test Pass :--> Address Added to the whitelist! \n") self.assertEqual(white_list_value[0], random_address) - return + print("Test Pass:--> Address Added to the whitelist") + return 1 else: - QTest.qWait(100) print( - "\n Test Fail :--> You cannot add the same address to your list twice." - " Perhaps rename the existing one if you want. \n" - ) - self.assertTrue( - False, - "\n Test Fail :--> You cannot add the same address to your list twice." - " Perhaps rename the existing one if you want.", + "Test Fail:--> You cannot add the same address to your list twice." + "Perhaps rename the existing one if you want" ) return 0 else: QTest.qWait(100) - print("\n Test Fail :--> The address you entered was invalid. Ignoring it. \n") - self.assertTrue(False, " \n Test Fail :--> The address you entered was invalid. Ignoring it.") + print("Test Fail:--> The address you entered was invalid. Ignoring it") return 0 diff --git a/src/graphicaltesting/test_chans.py b/src/graphicaltesting/test_chans.py index 3b037b18..1a7105b1 100644 --- a/src/graphicaltesting/test_chans.py +++ b/src/graphicaltesting/test_chans.py @@ -9,7 +9,8 @@ class BitmessageTest_ChansTest(BitmessageTestCase): def test_chans(self): """Switch to chans window and test""" + print("=====================Test - Chans Functionality=====================") QTest.qWait(1200) self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.chans) - print("\n Test Pass :--> Chans Test Passed! \n") + print("Test Pass :--> Chans Test Passed") return 1 diff --git a/src/graphicaltesting/test_inbox_popmenu.py b/src/graphicaltesting/test_inbox_popmenu.py deleted file mode 100644 index 039b7379..00000000 --- a/src/graphicaltesting/test_inbox_popmenu.py +++ /dev/null @@ -1,134 +0,0 @@ -"""Inbox TabWidget QTreeWidget Testing""" -import random -from random import choice -from string import ascii_lowercase - -from PyQt4 import QtCore, QtGui -from PyQt4.QtCore import Qt -from PyQt4.QtTest import QTest - -from bitmessageqt import dialogs -from bmconfigparser import BMConfigParser -from testloader import BitmessageTestCase - - -class BitmessageTest_Inbox_PopMenu(BitmessageTestCase): - """Inbox TabWidget QTreeWidget popMenu Fucntionality testing""" - - def test_sider(self): - """Show QTreeWidget popmenu""" - QTest.qWait(500) - self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.inbox) - QTest.qWait(500) - treeWidget = self.myapp.ui.treeWidgetYourIdentities - self.levelitem = treeWidget.topLevelItem(random.randint(1, len(BMConfigParser().addresses()))) - self.myapp.ui.treeWidgetYourIdentities.setCurrentItem(self.levelitem) - rect = self.myapp.ui.treeWidgetYourIdentities.visualItemRect(self.levelitem) - self.currentItem = self.myapp.getCurrentItem() - self.myapp.on_context_menuYourIdentities(QtCore.QPoint(rect.x() + 200, rect.y() + 200)) - QTest.qWait(500) - self.myapp.popMenuYourIdentities.hide() - QTest.qWait(100) - self.copy_clipboard() - QTest.qWait(100) - self.enable_disable() - QTest.qWait(100) - self.special_address_behavior() - QTest.qWait(100) - self.email_gateway() - QTest.qWait(100) - self.mark_all_as_read() - - def copy_clipboard(self): - """Copy address to clipboard and test""" - try: - text_selected = self.levelitem.text(0) - QTest.qWait(250) - self.myapp.popMenuYourIdentities.actions()[2].trigger() - QTest.qWait(750) - if str(QtGui.QApplication.clipboard().text()) in str(text_selected): - self.assertTrue(True, " Test Pass :--> Copy functionality working fine \n") - print(" Test Pass :--> Copy functionality working fine \n") - else: - print(" Test Fail :--> Copy functionality failed \n") - self.assertTrue(False, " Test Fail :--> Copy functionality failed \n") - except: - print(" Test Fail :--> Copy functionality failed \n") - self.assertTrue(False, " Test Fail :--> Copy functionality failed \n") - - def enable_disable(self): - """Enable address and disable address""" - QTest.qWait(500) - try: - if self.currentItem.isEnabled: - QTest.qWait(300) - self.myapp.popMenuYourIdentities.actions()[4].trigger() - print("Address is Disabled \n") - QTest.qWait(1000) - self.myapp.on_action_Enable() - print("Address is Enabled \n") - QTest.qWait(1000) - else: - QTest.qWait(300) - self.myapp.popMenuYourIdentities.actions()[4].trigger() - print("Address is Enabled \n") - QTest.qWait(1000) - self.myapp.on_action_Disable() - print("Address is Disabled \n") - QTest.qWait(1000) - except: - self.assertTrue(False, " Test Fail :--> Enable Disable failed \n") - - def special_address_behavior(self): - """Tests for special address""" - try: - special_add = dialogs.SpecialAddressBehaviorDialog(self.myapp, BMConfigParser()) - special_add.lineEditMailingListName.setText("") - QTest.qWait(1000) - special_add.radioButtonBehaviorMailingList.click() - QTest.qWait(500) - special_add.lineEditMailingListName.setText("".join(choice(ascii_lowercase) for x in range(15))) - QTest.qWait(1000) - QTest.mouseClick(special_add.buttonBox.button(QtGui.QDialogButtonBox.Ok), Qt.LeftButton) - self.assertTrue(True, " Test Pass :--> Special Address Behavior Functionality Passed \n") - print(" Test Pass :--> Special Address Behavior Functionality Passed \n") - except: - print(" Test Fail :--> Special Address Behavior Functionality failed \n") - self.assertTrue(False, " Test Fail :--> Special Address Behavior Functionality failed \n") - - def email_gateway(self): - """Test email gateway functionality""" - try: - QTest.qWait(200) - email_gateway = dialogs.EmailGatewayDialog(self.myapp, config=BMConfigParser()) - QTest.qWait(300) - email_gateway.show() - QTest.qWait(1000) - email_gateway.radioButtonRegister.click() - QTest.qWait(500) - email = ( - ("".join(choice(ascii_lowercase) for x in range(10))) - + "@" - + ("".join(choice(ascii_lowercase) for x in range(7))) - + ".com" - ) - email_gateway.lineEditEmail.setText(email) - QTest.qWait(1000) - QTest.mouseClick(email_gateway.buttonBox.button(QtGui.QDialogButtonBox.Ok), Qt.LeftButton) - self.assertTrue(True, " Test Pass :--> Email-Gateway Functionality Passed \n") - print(" Test Pass :--> Email-Gateway Functionality Passed \n") - except: - print(" Test Fail :--> Email-Gateway Functionality failed \n") - self.assertTrue(False, " Test Fail :--> Email-Gateway Functionality failed \n") - - def mark_all_as_read(self): - """Mark all messages as read""" - try: - QTest.qWait(1000) - self.myapp.popMenuYourIdentities.actions()[11].trigger() - QTest.qWait(200) - self.assertTrue(True, " Test Pass :--> Mark All as Read Functionality Passed \n") - print(" Test Pass :--> Mark All as Read Functionality Passed \n") - except: - print(" Test Fail :--> Mark All as Read Functionality failed \n") - self.assertTrue(False, " Test Fail :--> Mark All as Read Functionality failed \n") diff --git a/src/graphicaltesting/test_messagesend.py b/src/graphicaltesting/test_messagesend.py index 5c2ddcdb..41833ea4 100644 --- a/src/graphicaltesting/test_messagesend.py +++ b/src/graphicaltesting/test_messagesend.py @@ -16,68 +16,54 @@ class BitmessageTest_MessageTesting(BitmessageTestCase): def test_msgsend(self): """Auto-fill senders address, receivers address, subject and message and sends the message""" + print("=====================Test - Message Send/Receive Functionality=====================") try: if BMConfigParser().addresses(): + inbox_length = len(sqlQuery("Select msgid from inbox")) QTest.qWait(500) self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.send) QTest.qWait(500) - - self.myapp.ui.comboBoxSendFrom.setCurrentIndex( - random.randrange(1, len(BMConfigParser().addresses()) + 1) - ) - QTest.qWait(1000) - rand_address = choice(BMConfigParser().addresses()) random_address = "" - for x in range(len(rand_address)): - random_address += rand_address[x] + for i, _ in enumerate(rand_address): + random_address += rand_address[i] self.myapp.ui.lineEditTo.setText(random_address) - QTest.qWait(1) - QTest.qWait(800) - + QTest.qWait(4) + QTest.qWait(500) random_subject = "" - for x in range(40): + for x in range(30): random_subject += choice(ascii_lowercase) self.myapp.ui.lineEditSubject.setText(random_subject) - QTest.qWait(1) - QTest.qWait(800) - + QTest.qWait(4) + QTest.qWait(500) random_message = "" - for x in range(200): + for x in range(150): random_message += choice(ascii_lowercase) self.myapp.ui.textEditMessage.setText(random_message) QTest.qWait(1) - QTest.qWait(800) - - inbox_length = len(sqlQuery("Select msgid from inbox")) + QTest.qWait(400) + randinteger = random.randrange(1, len(BMConfigParser().addresses()) + 1) + self.myapp.ui.comboBoxSendFrom.setCurrentIndex(randinteger) + QTest.qWait(1000) QTest.mouseClick(self.myapp.ui.pushButtonSend, Qt.LeftButton) - QTest.qWait(600) - + QTest.qWait(350) self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.inbox) - print(" .......................... waiting for message .......................... ") - + print(" Waiting For Message .......................... ") for x in range(5): - QTest.qWait(5000) + QTest.qWait(4000) print(" waiting " + x * ".") - self.assertEqual(sqlQuery("Select toaddress,subject from inbox")[-1], (rand_address, random_subject)) - + new_inbox = sqlQuery("Select msgid,toaddress,subject from inbox") + self.assertEqual(new_inbox[-1][1], rand_address) + self.assertEqual(new_inbox[-1][2], random_subject) if len(sqlQuery("Select msgid from inbox")) == inbox_length + 1: - QTest.qWait(100) - print("\n Test Pass :--> Message Received Successfully \n") - self.assertTrue(True, " Test Pass :--> Message Received Successfully") + print("Test Pass:--> Message Received Successfully") return 1 else: - QTest.qWait(100) - print("\n Test Fail :--> Doesn't Receive Any Message!! \n") - self.assertTrue(False, " \n Test Fail :--> Doesn't Receive Any Message!!") + print("Test Fail:--> Doesn't Receive Any Message") return 0 else: - QTest.qWait(100) - print("\n Test Fail :--> No Address Found!! \n") - self.assertTrue(False, " \n Test Fail :--> No Address Found!!") + print("Test Fail:--> No Address Found") return 0 except: - QTest.qWait(100) - print("\n Test Fail :--> Message Sending Test Fail!! \n") - self.assertTrue(False, " \n Test Fail :--> Message Sending Test Fail!!") + print("Test Fail:--> Message Sending Test Fail") return 0 diff --git a/src/graphicaltesting/test_networkstatus.py b/src/graphicaltesting/test_networkstatus.py index 3b252594..4a427d2b 100644 --- a/src/graphicaltesting/test_networkstatus.py +++ b/src/graphicaltesting/test_networkstatus.py @@ -10,10 +10,12 @@ class BitmessageTest_NetworkTest(BitmessageTestCase): def test_network(self): """Switch to network window""" try: + print("=====================Test - Network Functionality=====================") QTest.qWait(1000) self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.networkstatus) QTest.qWait(1200) - print("\n Test Pass :--> Network Functionality Working Well! \n") + print("Test Pass:--> Network Functionality Working Well") return 1 except: - print("\n Test Fail :--> Network Functionality Failed! \n") + print("Test Fail:--> Network Functionality Failed") + return 0 diff --git a/src/graphicaltesting/test_popupmenu.py b/src/graphicaltesting/test_popupmenu.py new file mode 100644 index 00000000..1fd242bd --- /dev/null +++ b/src/graphicaltesting/test_popupmenu.py @@ -0,0 +1,607 @@ +"""Inbox TabWidget QTreeWidget Testing""" +import random +from random import choice +from string import ascii_lowercase + +from PyQt4 import QtCore, QtGui +from PyQt4.QtCore import Qt +from PyQt4.QtTest import QTest + +import queues +import shared +from bitmessageqt import blacklist, dialogs +from bmconfigparser import BMConfigParser +from helper_sql import sqlExecute, sqlQuery +from testloader import BitmessageTestCase +from tr import _translate + + +class BitmessageTest_Inbox_PopMenu(BitmessageTestCase): + """Inbox TabWidget QTreeWidget popMenu Fucntionality testing""" + + def test_sider(self): + """Show QTreeWidget popmenu""" + try: + QTest.qWait(500) + self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.inbox) + QTest.qWait(500) + self.treeWidget = self.myapp.ui.treeWidgetYourIdentities + self.levelitem = self.treeWidget.topLevelItem(random.randint(1, len(BMConfigParser().addresses()) + 1)) + self.treeWidget.setCurrentItem(self.levelitem) + self.currentItem = self.myapp.getCurrentItem() + self.rect = self.treeWidget.visualItemRect(self.levelitem) + self.myapp.on_context_menuYourIdentities(QtCore.QPoint(self.rect.x() + 160, self.rect.y() + 200)) + self.myapp.popMenuYourIdentities.hide() + self.copy_clipboard() + self.enable_disable() + self.special_address_behavior() + self.email_gateway() + self.mark_all_as_read() + return 1 + except: + print("Test Fail:--> QTreeWidget popmenu functionality failed") + return 0 + + def copy_clipboard(self): + """Copy Address to the ClipBoard and test whether the copied test is same or not?""" + print("=====================Test - Copy Address to the ClipBoard=====================") + try: + self.popup_menu(2) + text_selected = self.currentItem.text(0) + QTest.qWait(500) + self.myapp.popMenuYourIdentities.actions()[2].trigger() + QTest.qWait(750) + if str(QtGui.QApplication.clipboard().text()) in str(text_selected): + print("Test Pass:--> Copy functionality working fine") + return 1 + else: + print("Test Fail:--> Copy functionality failed") + return 0 + except: + print("Test Fail:--> Copy functionality failed") + return 0 + + def enable_disable(self): + """Enable address and disable address""" + print("=====================Test - Address Enable-Disable Functionality=====================") + try: + self.popup_menu(4) + if self.currentItem.isEnabled: + QTest.qWait(500) + self.myapp.popMenuYourIdentities.actions()[4].trigger() + QTest.qWait(1000) + self.myapp.on_action_Enable() + QTest.qWait(500) + print("Test Pass:--> Enable-Disable working fine") + return 1 + else: + QTest.qWait(500) + self.myapp.popMenuYourIdentities.actions()[4].trigger() + QTest.qWait(1000) + self.myapp.on_action_Disable() + QTest.qWait(500) + print("Test Pass:--> Enable-Disable working fine") + return 1 + except: + print("Test Fail:--> Could not able to do Enable-Disable") + return 0 + + def special_address_behavior(self): + """Tests for special address""" + print("=====================Test - Address Special Behavior=====================") + try: + self.popup_menu(6) + special_add = dialogs.SpecialAddressBehaviorDialog(self.myapp, BMConfigParser()) + special_add.lineEditMailingListName.setText("") + QTest.qWait(500) + special_add.radioButtonBehaviorMailingList.click() + QTest.qWait(1000) + special_add.lineEditMailingListName.setText("".join(choice(ascii_lowercase) for x in range(15))) + QTest.qWait(500) + QTest.mouseClick(special_add.buttonBox.button(QtGui.QDialogButtonBox.Ok), Qt.LeftButton) + print("Test Pass:--> Special Address Behavior Functionality Passed") + return 1 + except: + print("Test Fail:--> Special Address Behavior Functionality failed") + return 0 + + def email_gateway(self): + """Test email gateway functionality""" + print("=====================Test - Email Gateway=====================") + try: + self.popup_menu(7) + QTest.qWait(200) + email_gateway = dialogs.EmailGatewayDialog(self.myapp, BMConfigParser()) + email_gateway.show() + QTest.qWait(500) + email_gateway.radioButtonRegister.click() + QTest.qWait(450) + email = ( + ("".join(choice(ascii_lowercase) for x in range(10))) + + "@" + + ("".join(choice(ascii_lowercase) for x in range(7))) + + ".com" + ) + email_gateway.lineEditEmail.setText(email) + QTest.qWait(500) + QTest.mouseClick(email_gateway.buttonBox.button(QtGui.QDialogButtonBox.Ok), Qt.LeftButton) + print("Test Pass:--> Email-Gateway Functionality Passed") + return 1 + except: + print("Test Fail:--> Email-Gateway Functionality failed") + return 0 + + def mark_all_as_read(self): + """Mark all messages as read""" + print("=====================Test - Mark All as Read Functionality=====================") + try: + self.popup_menu(11) + QTest.qWait(500) + self.myapp.popMenuYourIdentities.actions()[11].trigger() + QTest.qWait(500) + print("Test Pass:--> Mark All as Read Functionality Passed") + return 1 + except: + print("Test Fail:--> Mark All as Read Functionality failed") + return 0 + + def popup_menu(self, intval): + QTest.qWait(5) + self.myapp.popMenuYourIdentities.setActiveAction(self.myapp.popMenuYourIdentities.actions()[intval]) + self.myapp.popMenuYourIdentities.setStyleSheet("QMenu:selected {background-color:#FF5733}") + self.myapp.popMenuYourIdentities.show() + QTest.qWait(400) + self.myapp.popMenuYourIdentities.hide() + QTest.qWait(50) + + +class BitmessageTest_AddressBox_PopMenu(BitmessageTestCase): + """AddressBox TabWidget QTreeWidget popMenu Fucntionality testing""" + + def test_sider(self): + try: + QTest.qWait(500) + self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.send) + self.treeWidget = self.myapp.ui.tableWidgetAddressBook + total_sub = sqlQuery("Select address from addressbook") + QTest.qWait(500) + self.rand_value = random.randint(0, len(total_sub) - 1) + self.current_address = str(self.treeWidget.item(self.rand_value, 1).text()) + self.treeWidget.setCurrentCell(self.rand_value, 1) + self.treeWidget.item(self.rand_value, 1).setSelected(True) + rect = self.treeWidget.visualItemRect(self.treeWidget.item(self.rand_value, 1)) + QTest.qWait(500) + self.myapp.on_context_menuAddressBook(QtCore.QPoint(rect.x() + 160, rect.y() + 200)) + QTest.qWait(500) + if len(total_sub) > 0: + self.treeWidget.item(random.randint(0, self.rand_value), 1) + else: + print("No Address Found.") + self.add_new_address() + self.myapp.popMenuAddressBook.hide() + self.send_message_to_this_add() + self.copy_clipboard() + self.subscribe_to_this_address() + self.delete_addressbook() + return 1 + except: + print("Test Fail:--> PopUpMenu Send Tab Functionality failed") + return 0 + + def add_new_address(self): + """Adding New Address to Address Book""" + print("=====================Test - Adding New Address to Address Book=====================") + try: + self.popup_menu(6) + self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.send) + self.dialog = dialogs.AddAddressDialog(self.myapp) + self.dialog.show() + QTest.qWait(500) + self.dialog.lineEditLabel.setText("".join(choice(ascii_lowercase) for _ in range(15))) + QTest.qWait(500) + self.dialog.lineEditAddress.setText(choice(BMConfigParser().addresses())) + QTest.qWait(500) + QtCore.QTimer.singleShot(0, self.dialog.buttonBox.button(QtGui.QDialogButtonBox.Ok).clicked) + QTest.qWait(500) + try: + address, label = self.dialog.data + except: + print("Test Fail:--> Could Not able to add new address") + return 0 + if shared.isAddressInMyAddressBook(address): + print( + " Test :--> You cannot add the same address to your address book twice." + " Try renaming the existing one if you want. \n" + ) + self.myapp.updateStatusBar( + _translate( + "MainWindow", + "Error: You cannot add the same address to your adrress book twice." + " Try renaming the existing one if you want.", + ) + ) + return 0 + self.myapp.addEntryToAddressBook(address, label) + print("Test Pass:--> Address Added to the Address Book!") + return 1 + except: + print("Test Fail:--> Could Not able to add new address") + return 0 + + def send_message_to_this_add(self): + """Test - Send Message to this Address""" + print("=====================Test - Send Message to this Address=====================") + try: + self.popup_menu(0) + if BMConfigParser().addresses(): + self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.send) + inbox_length = len(sqlQuery("Select msgid from inbox")) + QTest.qWait(500) + self.myapp.popMenuAddressBook.actions()[0].trigger() + QTest.qWait(500) + random_subject = "" + for x in range(30): + random_subject += choice(ascii_lowercase) + self.myapp.ui.lineEditSubject.setText(random_subject) + QTest.qWait(4) + QTest.qWait(500) + random_message = "" + for x in range(150): + random_message += choice(ascii_lowercase) + self.myapp.ui.textEditMessage.setText(random_message) + QTest.qWait(1) + QTest.qWait(500) + randinteger = random.randrange(1, len(BMConfigParser().addresses()) + 1) + self.myapp.ui.comboBoxSendFrom.setCurrentIndex(randinteger) + QTest.qWait(500) + QTest.mouseClick(self.myapp.ui.pushButtonSend, Qt.LeftButton) + QTest.qWait(500) + self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.inbox) + print(" Waiting For Message .......................... ") + for x in range(5): + QTest.qWait(4000) + print(" waiting " + x * ".") + new_inbox = sqlQuery("Select msgid,toaddress,subject from inbox") + self.assertEqual(new_inbox[-1][2], random_subject) + if len(sqlQuery("Select msgid from inbox")) == inbox_length + 1: + print("Test Pass:--> Message Received Successfully") + return 1 + else: + print("Test Fail:--> Doesn't Receive Any Message") + return 0 + else: + print("Test Fail:--> No Address Found") + return 0 + except: + print("Test Fail:--> Message Sending Test Fail") + return 0 + + def copy_clipboard(self): + """Test - Copy Address Book Address to Clipboard""" + print("=====================Test - Copy Address Book Address to Clipboard=====================") + try: + self.popup_menu(1) + self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.send) + self.current_address = str(self.treeWidget.item(random.randint(0, self.rand_value), 1).text()) + QTest.qWait(500) + self.myapp.popMenuAddressBook.actions()[1].trigger() + QTest.qWait(1000) + if str(QtGui.QApplication.clipboard().text()) in self.current_address: + print("Test Pass:--> Copy functionality working fine") + return 1 + else: + print("Test Fail:--> Copy functionality failed") + return 0 + except: + print("Test Fail:--> Copy functionality failed") + return 0 + + def subscribe_to_this_address(self): + """Subscribe to This Address""" + print("=====================Test - Subscribe to This Address=====================") + try: + self.popup_menu(2) + self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.send) + self.treeWidget.setCurrentCell(self.rand_value, 1) + QTest.qWait(500) + self.myapp.popMenuAddressBook.actions()[2].trigger() + QTest.qWait(750) + self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.send) + subscription_list = sqlQuery("SELECT address FROM subscriptions") + if self.current_address in subscription_list: + print( + "Test Fail:-->" + "Subscribe to this functionality failed" + " because address is alreay added in the subscription list\n" + ) + return 0 + else: + print("Test Pass:--> Subscribe to this functionality working fine") + return 1 + except: + print("Test Fail:--> Subscribe to this Address failed") + return 0 + + def delete_addressbook(self): + """Delete Address from the Address Book""" + print("=====================Test - Delete Address from the Address Book=====================") + try: + self.popup_menu(7) + self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.send) + self.treeWidget.setCurrentCell(self.rand_value, 1) + self.myapp.on_action_AddressBookDelete() + QTest.qWait(500) + addressbook_list = sqlQuery("SELECT address FROM addressbook") + if self.current_address not in addressbook_list: + print("Test Pass:--> Address is Deleted from the AddressBook") + return 1 + else: + print("Test Fail:--> Could not able to Delete this address") + return 0 + except: + print("Test Fail:--> Could Not Able to Delete this Address from the AddressBook") + return 0 + + def popup_menu(self, intval): + QTest.qWait(5) + self.myapp.popMenuAddressBook.setActiveAction(self.myapp.popMenuAddressBook.actions()[intval]) + self.myapp.popMenuAddressBook.setStyleSheet("QMenu:selected {background-color:#FF5733}") + self.myapp.popMenuAddressBook.show() + QTest.qWait(400) + self.myapp.popMenuAddressBook.hide() + QTest.qWait(50) + + +class BitmessageTest_Subscription_PopMenu(BitmessageTestCase): + """Subscription TabWidget QTreeWidget popMenu Fucntionality testing""" + + def test_sider(self): + try: + QTest.qWait(500) + self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.subscriptions) + QTest.qWait(500) + self.treeWidget = self.myapp.ui.treeWidgetSubscriptions + total_sub = sqlQuery("Select address from subscriptions") + self.levelitem = self.treeWidget.topLevelItem(random.randint(0, len(total_sub) - 1)) + self.treeWidget.setCurrentItem(self.levelitem) + rect = self.treeWidget.visualItemRect(self.levelitem) + self.currentItem = self.myapp.getCurrentItem() + self.myapp.on_context_menuSubscriptions(QtCore.QPoint(rect.x() + 160, rect.y() + 200)) + QTest.qWait(500) + self.myapp.popMenuSubscriptions.hide() + self.new_subscribe() + self.enable_disable() + self.copy_clipboard() + self.send_message_to_this_add() + self.mark_all_as_read() + self.del_address_from_sub() + return 1 + except: + print("Test Fail:--> Subscription Tab PopUpMenu Functionality failed") + return 0 + + def new_subscribe(self): + print("=====================Test - Subscribe to New Address=====================") + try: + if BMConfigParser().addresses(): + self.popup_menu(0) + dialog = dialogs.NewSubscriptionDialog(self.myapp) + QTest.qWait(500) + dialog.lineEditLabel.setText("") + dialog.lineEditAddress.setText("") + dialog.show() + QTest.qWait(500) + random_label = "" + for _ in range(30): + random_label += choice(ascii_lowercase) + dialog.lineEditLabel.setText(random_label) + QTest.qWait(5) + QTest.qWait(500) + rand_address = choice(BMConfigParser().addresses()) + random_address = "" + for x in range(len(rand_address)): + random_address += rand_address[x] + dialog.lineEditAddress.setText(random_address) + QTest.qWait(5) + QtCore.QTimer.singleShot(0, dialog.buttonBox.button(QtGui.QDialogButtonBox.Ok).clicked) + QTest.qWait(500) + try: + address, label = dialog.data + except AttributeError: + print("Test Fail:--> Could Not able to add new address to subscription list") + return 0 + if shared.isAddressInMySubscriptionsList(address): + print( + "MainWindow", + "Error: You cannot add the same address to your subscriptions twice." + " Perhaps rename the existing one if you want.", + ) + self.myapp.updateStatusBar( + _translate( + "MainWindow", + "Error: You cannot add the same address to your subscriptions twice." + " Perhaps rename the existing one if you want.", + ) + ) + return 0 + self.myapp.addSubscription(address, label) + print("Test Pass:--> Address Added to subscription list") + if dialog.checkBoxDisplayMessagesAlreadyInInventory.isChecked(): + for value in dialog.recent: + queues.objectProcessorQueue.put((value.type, value.payload)) + return 1 + else: + print("Test Fail:--> No address found") + return 0 + except: + print("Test Fail:--> New Subscription Functionality Failed") + return 0 + + def enable_disable(self): + """Enable address and disable address""" + print("=====================Test - Address Enable-Disable Functionality=====================") + QTest.qWait(500) + try: + self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.subscriptions) + self.treeWidget.setCurrentItem(self.levelitem) + self.popup_menu(3) + if self.currentItem.isEnabled: + QTest.qWait(500) + self.myapp.popMenuSubscriptions.actions()[3].trigger() + QTest.qWait(1000) + self.myapp.on_action_Enable() + QTest.qWait(500) + else: + QTest.qWait(500) + self.myapp.popMenuSubscriptions.actions()[3].trigger() + QTest.qWait(1000) + self.myapp.on_action_Disable() + QTest.qWait(500) + print("Test Pass:--> Enable Disable Working well") + return 0 + except: + print("Test Fail:--> Enable Disable failed") + return 1 + + def copy_clipboard(self): + """Test - Copy Address Book Address to Clipboard""" + print("=====================Test - Copy Address Book Address to Clipboard=====================") + try: + self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.subscriptions) + self.treeWidget.setCurrentItem(self.levelitem) + self.popup_menu(6) + QTest.qWait(500) + self.myapp.popMenuSubscriptions.actions()[6].trigger() + QTest.qWait(1000) + if str(QtGui.QApplication.clipboard().text()) in str(self.currentItem.text(0)): + print("Test Pass:--> Copy functionality working fine") + return 1 + else: + print("Test Fail:--> Copy functionality failed") + return 0 + except: + print("Test Fail:--> Copy functionality failed") + return 0 + + def send_message_to_this_add(self): + """Test - Send Message to this Address""" + print("=====================Test - Send Message to this Address=====================") + try: + self.popup_menu(7) + if BMConfigParser().addresses(): + inbox_length = len(sqlQuery("Select msgid from inbox")) + QTest.qWait(500) + self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.subscriptions) + self.treeWidget.setCurrentItem(self.levelitem) + self.myapp.popMenuSubscriptions.actions()[7].trigger() + QTest.qWait(500) + random_subject = "" + for x in range(30): + random_subject += choice(ascii_lowercase) + self.myapp.ui.lineEditSubject.setText(random_subject) + QTest.qWait(4) + QTest.qWait(500) + random_message = "" + for x in range(150): + random_message += choice(ascii_lowercase) + self.myapp.ui.textEditMessage.setText(random_message) + QTest.qWait(1) + QTest.qWait(500) + randinteger = random.randrange(1, len(BMConfigParser().addresses()) + 1) + self.myapp.ui.comboBoxSendFrom.setCurrentIndex(randinteger) + QTest.qWait(500) + QTest.mouseClick(self.myapp.ui.pushButtonSend, Qt.LeftButton) + QTest.qWait(500) + self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.inbox) + print(" Waiting For Message .......................... ") + for x in range(5): + QTest.qWait(4000) + print(" waiting " + x * ".") + new_inbox = sqlQuery("Select msgid,toaddress,subject from inbox") + self.assertEqual(new_inbox[-1][2], random_subject) + if len(sqlQuery("Select msgid from inbox")) == inbox_length + 1: + print("Test Pass:--> Message Received Successfully") + return 1 + else: + print("Test Fail:--> Doesn't Receive Any Message") + return 0 + else: + print("Test Fail:--> No Address Found") + return 0 + except: + print("Test Fail:--> Message Sending Test Fail") + return 0 + + def mark_all_as_read(self): + """Mark all messages as read""" + print("=====================Test - Mark All as Read Functionality=====================") + try: + self.popup_menu(8) + QTest.qWait(550) + self.myapp.popMenuSubscriptions.actions()[8].trigger() + QTest.qWait(750) + print("Test Pass:--> Mark All as Read Functionality Passed") + return 1 + except: + print("Test Fail:--> Mark All as Read Functionality failed") + return 0 + + def del_address_from_sub(self): + print("=====================Test - Delete Address from the subscription Field=====================") + try: + self.popup_menu(1) + self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.subscriptions) + self.treeWidget.setCurrentItem(self.levelitem) + address = self.myapp.getCurrentAccount() + QTest.qWait(750) + sqlExecute("""DELETE FROM subscriptions WHERE address=?""", address) + self.myapp.rerenderTabTreeSubscriptions() + self.myapp.rerenderMessagelistFromLabels() + self.myapp.rerenderAddressBook() + shared.reloadBroadcastSendersForWhichImWatching() + addressbook_list = sqlQuery("SELECT address FROM subscriptions") + if address not in addressbook_list: + print("Test Pass:--> Address is Deleted from the AddressBook") + return 1 + else: + print("Test Fail:--> Could not able to Delete this address") + return 0 + except: + print("Test Fail:--> Could Not Able to Delete this Address from the AddressBook") + return 0 + + def popup_menu(self, intval): + QTest.qWait(5) + self.myapp.popMenuSubscriptions.setActiveAction(self.myapp.popMenuSubscriptions.actions()[intval]) + self.myapp.popMenuSubscriptions.setStyleSheet("QMenu:selected {background-color:#FF5733}") + self.myapp.popMenuSubscriptions.show() + QTest.qWait(400) + self.myapp.popMenuSubscriptions.hide() + QTest.qWait(50) + + +class BitmessageTest_BlackWhiteList_PopMenu(BitmessageTestCase): + """Subscription TabWidget QTreeWidget popMenu Fucntionality testing""" + + def test_sider(self): + total_bl = sqlQuery("Select address from blacklist") + if total_bl > 0: + QTest.qWait(500) + self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.blackwhitelist) + self.tableWidget = self.myapp.ui.blackwhitelist.tableWidgetBlacklist + QTest.qWait(500) + self.rand_value = random.randint(0, len(total_bl) - 1) + self.current_address = str(self.tableWidget.item(self.rand_value, 1).text()) + self.tableWidget.setCurrentCell(self.rand_value, 1) + self.tableWidget.item(self.rand_value, 1).setSelected(True) + rect = self.tableWidget.visualItemRect(self.tableWidget.item(self.rand_value, 1)) + QTest.qWait(500) + self.blacklist_obj = blacklist.Blacklist() + self.blacklist_obj.init_blacklist_popup_menu() + self.blacklist_obj.popMenuBlacklist.move(QtCore.QPoint(rect.x(), rect.y() + 290)) + self.blacklist_obj.popMenuBlacklist.show() + QTest.qWait(300) + self.blacklist_obj.popMenuBlacklist.hide() + self.add_delete() + else: + print("Test Fail:--> No black list Found") + return 0 diff --git a/src/graphicaltesting/test_quit.py b/src/graphicaltesting/test_quit.py index 329149e8..d8dd980d 100644 --- a/src/graphicaltesting/test_quit.py +++ b/src/graphicaltesting/test_quit.py @@ -20,6 +20,7 @@ class BitmessageTest_QuitTest(BitmessageTestCase): def test_quitapplication(self): """wait for pow and shutdown the application""" + print("=====================Test - Quitting Application=====================") if self.myapp.quitAccepted and not self.myapp.wait: return diff --git a/src/graphicaltesting/test_settingwindow.py b/src/graphicaltesting/test_settingwindow.py index efc68afd..9e840781 100644 --- a/src/graphicaltesting/test_settingwindow.py +++ b/src/graphicaltesting/test_settingwindow.py @@ -16,22 +16,25 @@ class BitmessageTest_SettingWindowTest(BitmessageTestCase): def test_settingwindow(self): """Triggers the setting window""" - self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.inbox) - QTest.qWait(1500) - dialog = dialogs.SettingsDialog(self.myapp, firstrun=self.myapp._firstrun) - self.language_change(dialog) - QTest.qWait(300) - self.eng_convert(dialog) - QTest.qWait(300) - self.network_setting_window(dialog) - QTest.qWait(300) - self.tabresendsexpire_window(dialog) - QTest.qWait(300) + print("=====================Test - Setting Window=====================") + try: + self.myapp.ui.tabWidget.setCurrentWidget(self.myapp.ui.inbox) + QTest.qWait(1500) + dialog = dialogs.SettingsDialog(self.myapp, firstrun=self.myapp._firstrun) + self.language_change(dialog) + self.eng_convert(dialog) + self.network_setting_window(dialog) + self.tabresendsexpire_window(dialog) + return 1 + except: + print("Test Fail:-->Setting Window functionality failed") + return 0 def language_change(self, dialog): """Function that changes the language of the application""" + print("=====================Test - Language Change=====================") try: - """Change language""" + QTest.qWait(500) dialog.show() dialog.tabWidgetSettings.setCurrentIndex(dialog.tabWidgetSettings.indexOf(dialog.tabUserInterface)) QTest.qWait(800) @@ -42,17 +45,17 @@ class BitmessageTest_SettingWindowTest(BitmessageTestCase): QTest.qWait(1000) ok_btn = dialog.buttonBox.button(QtGui.QDialogButtonBox.Ok) QTest.mouseClick(ok_btn, Qt.LeftButton) - print("\n Test Pass :--> Language Changed Successfully \n") - self.assertTrue(True, " \n Test Pass :--> Language Changed Successfully ") + print("Test Pass:--> Language Changed Successfully") return 1 except: - print("\n Test Fail :--> Error while changing Language! \n") - self.assertTrue(False, " \n Test Fail :--> Error while changing Language!") + print("Test Fail:--> Error while changing Language") return 0 def eng_convert(self, dialog): """Convert any language to english, testing just for good readability""" + print("=====================Test - Converting Language Back to English=====================") try: + QTest.qWait(500) dialog.show() dialog.tabWidgetSettings.setCurrentIndex(dialog.tabWidgetSettings.indexOf(dialog.tabUserInterface)) QTest.qWait(800) @@ -63,17 +66,17 @@ class BitmessageTest_SettingWindowTest(BitmessageTestCase): QTest.qWait(1000) ok_btn = dialog.buttonBox.button(QtGui.QDialogButtonBox.Ok) QTest.mouseClick(ok_btn, Qt.LeftButton) - print("\n Test Pass :--> language changed to English Again \n") - self.assertTrue(True, " \n Test Pass :--> language changed to English Again ") + print("Test Pass:--> language changed to English Again") return 1 except: - print("\n Test Fail :--> Not able to change the language to English Again! Error! \n") - self.assertTrue(False, " \n Test Fail :--> Not able to change the language to English Again! Error!") + print("Test Fail:--> Not able to change the language to English Again! Error") return 0 def network_setting_window(self, dialog): """Test for Network setting window""" + print("=====================Test - Network Setting Window=====================") try: + QTest.qWait(500) dialog.show() QTest.qWait(300) dialog.tabWidgetSettings.setCurrentIndex(dialog.tabWidgetSettings.indexOf(dialog.tabNetworkSettings)) @@ -127,17 +130,17 @@ class BitmessageTest_SettingWindowTest(BitmessageTestCase): QTest.qWait(1200) ok_btn = dialog.buttonBox.button(QtGui.QDialogButtonBox.Ok) QTest.mouseClick(ok_btn, Qt.LeftButton) - print("\n Test Pass :--> Successfully tested Network setting window \n") - self.assertTrue(True, " \n Test Pass :--> Successfully tested Network setting window ") + print("Test Pass:--> Successfully tested Network setting window") return 1 except: - print("\n Test Fail :--> Error while testing Network setting window! \n") - self.assertTrue(False, " \n Test Fail :--> Error while testing Network setting window!") + print("Test Fail:--> Error while testing Network setting window") return 0 def tabresendsexpire_window(self, dialog): """Testing for resend expire window""" + print("=====================Test - Tab Resend Expire Window=====================") try: + QTest.qWait(500) dialog.lineEditDays.setText("") dialog.lineEditMonths.setText("") dialog.show() @@ -152,10 +155,8 @@ class BitmessageTest_SettingWindowTest(BitmessageTestCase): QTest.qWait(800) ok_btn = dialog.buttonBox.button(QtGui.QDialogButtonBox.Ok) QTest.mouseClick(ok_btn, Qt.LeftButton) - print("\n Test Pass :--> Test successfull. \n") - self.assertTrue(True, " \n Test Pass :--> Test successfull. ") + print("Test Pass:--> Test successfull") return 1 except: - print("\n Test Fail :--> Tab Resend Exprire! \n") - self.assertTrue(False, " \n Test Fail :--> Tab Resend Exprire! ") + print("Test Fail:--> Tab Resend Exprire") return 0 diff --git a/src/graphicaltesting/testinitialization.py b/src/graphicaltesting/testinitialization.py index 720ffc6f..b738160e 100644 --- a/src/graphicaltesting/testinitialization.py +++ b/src/graphicaltesting/testinitialization.py @@ -7,9 +7,9 @@ import test_blackwhitelist import test_chans import test_messagesend import test_networkstatus +import test_popupmenu import test_quit import test_settingwindow -import test_inbox_popmenu from testloader import BitmessageTestCase @@ -17,17 +17,31 @@ def test_initialize(myapp): """Inititalizing the test cases""" suite = unittest.TestSuite() suite.addTest( - BitmessageTestCase.bitmessage_testloader(test_addressgeneration.BitmessageTest_AddressGeneration, myapp=myapp)) + BitmessageTestCase.bitmessage_testloader(test_addressgeneration.BitmessageTest_AddressGeneration, myapp=myapp) + ) suite.addTest( - BitmessageTestCase.bitmessage_testloader(test_messagesend.BitmessageTest_MessageTesting, myapp=myapp)) + BitmessageTestCase.bitmessage_testloader(test_messagesend.BitmessageTest_MessageTesting, myapp=myapp) + ) suite.addTest( - BitmessageTestCase.bitmessage_testloader(test_addsubscription.BitmessageTest_AddSubscription, myapp=myapp)) + BitmessageTestCase.bitmessage_testloader(test_addsubscription.BitmessageTest_AddSubscription, myapp=myapp) + ) suite.addTest(BitmessageTestCase.bitmessage_testloader(test_networkstatus.BitmessageTest_NetworkTest, myapp=myapp)) suite.addTest( - BitmessageTestCase.bitmessage_testloader(test_blackwhitelist.BitmessageTest_BlackandWhiteList, myapp=myapp)) + BitmessageTestCase.bitmessage_testloader(test_blackwhitelist.BitmessageTest_BlackandWhiteList, myapp=myapp) + ) suite.addTest(BitmessageTestCase.bitmessage_testloader(test_chans.BitmessageTest_ChansTest, myapp=myapp)) + suite.addTest(BitmessageTestCase.bitmessage_testloader(test_popupmenu.BitmessageTest_Inbox_PopMenu, myapp=myapp)) suite.addTest( - BitmessageTestCase.bitmessage_testloader(test_settingwindow.BitmessageTest_SettingWindowTest, myapp=myapp)) - suite.addTest(BitmessageTestCase.bitmessage_testloader(test_inbox_popmenu.BitmessageTest_Inbox_PopMenu, myapp=myapp)) + BitmessageTestCase.bitmessage_testloader(test_popupmenu.BitmessageTest_AddressBox_PopMenu, myapp=myapp) + ) + suite.addTest( + BitmessageTestCase.bitmessage_testloader(test_popupmenu.BitmessageTest_Subscription_PopMenu, myapp=myapp) + ) + suite.addTest( + BitmessageTestCase.bitmessage_testloader(test_popupmenu.BitmessageTest_BlackWhiteList_PopMenu, myapp=myapp) + ) + suite.addTest( + BitmessageTestCase.bitmessage_testloader(test_settingwindow.BitmessageTest_SettingWindowTest, myapp=myapp) + ) suite.addTest(BitmessageTestCase.bitmessage_testloader(test_quit.BitmessageTest_QuitTest, myapp=myapp)) unittest.TextTestRunner().run(suite) diff --git a/src/gtesting.py b/src/test_qt.py similarity index 50% rename from src/gtesting.py rename to src/test_qt.py index 56099b97..b4a599c2 100644 --- a/src/gtesting.py +++ b/src/test_qt.py @@ -2,11 +2,11 @@ import os import shutil if __name__ == "__main__": - APPNAME = "PyBitmessage" - if os.path.isdir(os.path.expanduser(os.path.join("~", ".config/" + APPNAME + "/"))): - shutil.rmtree(os.path.expanduser(os.path.join("~", ".config/" + APPNAME + "/"))) - else: - pass + # APPNAME = "PyBitmessage" + # if os.path.isdir(os.path.expanduser(os.path.join("~", ".config/" + APPNAME + "/"))): + # shutil.rmtree(os.path.expanduser(os.path.join("~", ".config/" + APPNAME + "/"))) + # else: + # pass import state state.qttesting = True print(" --------------------------------- Graphical Qt Testing --------------------------------- ")