Skip to content
Snippets Groups Projects
Commit c12790c0 authored by inso's avatar inso Committed by GitHub
Browse files

Merge pull request #684 from florck/dev

READY:Test helpers : Message box, click yes vs enter
parents 642518bf 04bf3b2e
No related branches found
No related tags found
No related merge requests found
...@@ -3,9 +3,9 @@ import pytest ...@@ -3,9 +3,9 @@ import pytest
from duniterpy.documents import Certification from duniterpy.documents import Certification
from PyQt5.QtCore import QLocale, Qt, QEvent from PyQt5.QtCore import QLocale, Qt, QEvent
from PyQt5.QtTest import QTest from PyQt5.QtTest import QTest
from PyQt5.QtWidgets import QDialogButtonBox from PyQt5.QtWidgets import QDialogButtonBox, QMessageBox
from sakia.gui.sub.certification.controller import CertificationController from sakia.gui.sub.certification.controller import CertificationController
from ..helpers import click_on_top_message_box from ..helpers import click_on_top_message_box_button
@pytest.mark.asyncio @pytest.mark.asyncio
...@@ -43,7 +43,7 @@ async def test_certification_init_community(application_with_one_connection, fak ...@@ -43,7 +43,7 @@ async def test_certification_init_community(application_with_one_connection, fak
assert certification_dialog.view.button_box.button(QDialogButtonBox.Ok).isEnabled() assert certification_dialog.view.button_box.button(QDialogButtonBox.Ok).isEnabled()
QTest.mouseClick(certification_dialog.view.button_box.button(QDialogButtonBox.Ok), Qt.LeftButton) QTest.mouseClick(certification_dialog.view.button_box.button(QDialogButtonBox.Ok), Qt.LeftButton)
await asyncio.sleep(0.1) await asyncio.sleep(0.1)
click_on_top_message_box() click_on_top_message_box_button(QMessageBox.Yes)
await asyncio.sleep(0.2) await asyncio.sleep(0.2)
assert isinstance(fake_server_with_blockchain.forge.pool[0], Certification) assert isinstance(fake_server_with_blockchain.forge.pool[0], Certification)
......
...@@ -5,7 +5,7 @@ from PyQt5.QtCore import Qt ...@@ -5,7 +5,7 @@ from PyQt5.QtCore import Qt
from PyQt5.QtTest import QTest from PyQt5.QtTest import QTest
from sakia.data.processors import ConnectionsProcessor, BlockchainProcessor from sakia.data.processors import ConnectionsProcessor, BlockchainProcessor
from sakia.gui.dialogs.connection_cfg import ConnectionConfigController from sakia.gui.dialogs.connection_cfg import ConnectionConfigController
from ..helpers import click_on_top_message_box, select_file_dialog from ..helpers import select_file_dialog, accept_dialog
def assert_key_parameters_behaviour(connection_config_dialog, user): def assert_key_parameters_behaviour(connection_config_dialog, user):
...@@ -59,12 +59,11 @@ async def test_register_empty_blockchain(application, fake_server, bob, tmpdir): ...@@ -59,12 +59,11 @@ async def test_register_empty_blockchain(application, fake_server, bob, tmpdir):
await asyncio.sleep(1) await asyncio.sleep(1)
select_file_dialog(str(revocation_file)) select_file_dialog(str(revocation_file))
await asyncio.sleep(1) await asyncio.sleep(1)
click_on_top_message_box()
await asyncio.sleep(1) await asyncio.sleep(1)
revocation_file.ensure() revocation_file.ensure()
assert connection_config_dialog.view.stacked_pages.currentWidget() == connection_config_dialog.view.page_services assert connection_config_dialog.view.stacked_pages.currentWidget() == connection_config_dialog.view.page_services
assert len(ConnectionsProcessor.instanciate(application).connections()) == 1 assert len(ConnectionsProcessor.instanciate(application).connections()) == 1
click_on_top_message_box() accept_dialog("Registration")
application.loop.call_later(10, close_dialog) application.loop.call_later(10, close_dialog)
asyncio.ensure_future(exec_test()) asyncio.ensure_future(exec_test())
...@@ -90,12 +89,10 @@ async def test_connect(application, fake_server_with_blockchain, bob): ...@@ -90,12 +89,10 @@ async def test_connect(application, fake_server_with_blockchain, bob):
assert connection_config_dialog.view.stacked_pages.currentWidget() == connection_config_dialog.view.page_connection assert connection_config_dialog.view.stacked_pages.currentWidget() == connection_config_dialog.view.page_connection
assert_key_parameters_behaviour(connection_config_dialog, bob) assert_key_parameters_behaviour(connection_config_dialog, bob)
QTest.mouseClick(connection_config_dialog.view.button_next, Qt.LeftButton) QTest.mouseClick(connection_config_dialog.view.button_next, Qt.LeftButton)
await asyncio.sleep(1) await asyncio.sleep(0.1)
assert connection_config_dialog.view.stacked_pages.currentWidget() == connection_config_dialog.view.page_services assert connection_config_dialog.view.stacked_pages.currentWidget() == connection_config_dialog.view.page_services
assert len(ConnectionsProcessor.instanciate(application).connections()) == 1 assert len(ConnectionsProcessor.instanciate(application).connections()) == 1
click_on_top_message_box()
application.loop.call_later(10, close_dialog) application.loop.call_later(10, close_dialog)
asyncio.ensure_future(exec_test()) asyncio.ensure_future(exec_test())
await connection_config_dialog.async_exec() await connection_config_dialog.async_exec()
......
...@@ -3,13 +3,18 @@ from PyQt5.QtCore import Qt ...@@ -3,13 +3,18 @@ from PyQt5.QtCore import Qt
from PyQt5.QtTest import QTest from PyQt5.QtTest import QTest
def click_on_top_message_box():
def click_on_top_message_box_button(button):
topWidgets = QApplication.topLevelWidgets() topWidgets = QApplication.topLevelWidgets()
for w in topWidgets: for w in topWidgets:
if isinstance(w, QMessageBox): if isinstance(w, QMessageBox):
QTest.keyClick(w, Qt.Key_Enter) QTest.mouseClick(w.button(button), Qt.LeftButton)
elif isinstance(w, QDialog) and w.windowTitle() == "Registration":
QTest.keyClick(w, Qt.Key_Enter) def accept_dialog(title):
topWidgets = QApplication.topLevelWidgets()
for w in topWidgets:
if isinstance(w, QDialog) and w.windowTitle() == title:
w.accept()
def select_file_dialog(filename): def select_file_dialog(filename):
topWidgets = QApplication.topLevelWidgets() topWidgets = QApplication.topLevelWidgets()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment