import asyncio import pytest from PyQt5.QtCore import QLocale, Qt from PyQt5.QtTest import QTest from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QMessageBox, QApplication from sakia.gui.dialogs.transfer.controller import TransferController from duniterpy.documents import Transaction @pytest.mark.asyncio async def test_transfer(application_with_one_connection, simple_fake_server, bob, alice): transfer_dialog = TransferController.create(None, application_with_one_connection) def close_dialog(): if transfer_dialog.view.isVisible(): transfer_dialog.view.close() async def exec_test(): transfer_dialog.model.connection.password = bob.password QTest.mouseClick(transfer_dialog.view.radio_pubkey, Qt.LeftButton) QTest.keyClicks(transfer_dialog.view.edit_pubkey, alice.key.pubkey) transfer_dialog.view.spinbox_amount.setValue(10) await asyncio.sleep(0.1) assert transfer_dialog.view.button_box.button(QDialogButtonBox.Ok).isEnabled() QTest.mouseClick(transfer_dialog.view.button_box.button(QDialogButtonBox.Ok), Qt.LeftButton) await asyncio.sleep(0.2) assert isinstance(simple_fake_server.forge.pool[0], Transaction) application_with_one_connection.loop.call_later(10, close_dialog) asyncio.ensure_future(exec_test()) await transfer_dialog.async_exec() await simple_fake_server.close()