Skip to content
Snippets Groups Projects
Select Git revision
  • eabdadca0a1dc3d3db5acb89fa9956c3c84e1a0c
  • master default protected
  • network/gtest-1000 protected
  • upgradable-multisig
  • runtime/gtest-1000
  • network/gdev-800 protected
  • cgeek/issue-297-cpu
  • gdev-800-tests
  • update-docker-compose-rpc-squid-names
  • fix-252
  • 1000i100-test
  • hugo/tmp-0.9.1
  • network/gdev-803 protected
  • hugo/endpoint-gossip
  • network/gdev-802 protected
  • hugo/distance-precompute
  • network/gdev-900 protected
  • tuxmain/anonymous-tx
  • debug/podman
  • hugo/195-doc
  • hugo/195-graphql-schema
  • gtest-1000-0.11.1 protected
  • gtest-1000-0.11.0 protected
  • gtest-1000 protected
  • gdev-900-0.10.1 protected
  • gdev-900-0.10.0 protected
  • gdev-900-0.9.2 protected
  • gdev-800-0.8.0 protected
  • gdev-900-0.9.1 protected
  • gdev-900-0.9.0 protected
  • gdev-803 protected
  • gdev-802 protected
  • runtime-801 protected
  • gdev-800 protected
  • runtime-800-bis protected
  • runtime-800 protected
  • runtime-800-backup protected
  • runtime-701 protected
  • runtime-700 protected
  • runtime-600 protected
  • runtime-500 protected
41 results

compilation.md

Blame
  • test_connection_cfg_dialog.py 7.65 KiB
    import asyncio
    import pytest
    from PyQt5.QtCore import Qt
    from PyQt5.QtTest import QTest
    from sakia.data.processors import ConnectionsProcessor
    from sakia.gui.dialogs.connection_cfg import ConnectionConfigController
    
    
    def assert_key_parameters_behaviour(connection_config_dialog, user):
        QTest.keyClicks(connection_config_dialog.view.edit_uid, user.uid)
        QTest.keyClicks(connection_config_dialog.view.edit_salt, user.salt)
        QTest.keyClicks(connection_config_dialog.view.edit_salt_bis, user.salt)
        assert connection_config_dialog.view.button_next.isEnabled() is False
        assert connection_config_dialog.view.button_generate.isEnabled() is False
        QTest.keyClicks(connection_config_dialog.view.edit_password, user.password)
        connection_config_dialog.view.button_next.isEnabled() is False
        connection_config_dialog.view.button_generate.isEnabled() is False
        QTest.keyClicks(connection_config_dialog.view.edit_password_repeat, user.password + "wrong")
        assert connection_config_dialog.view.button_next.isEnabled() is False
        assert connection_config_dialog.view.button_generate.isEnabled() is False
        connection_config_dialog.view.edit_password_repeat.setText("")
        QTest.keyClicks(connection_config_dialog.view.edit_password_repeat, user.password)
        assert connection_config_dialog.view.button_next.isEnabled() is True
        assert connection_config_dialog.view.button_generate.isEnabled() is True
        QTest.mouseClick(connection_config_dialog.view.button_generate, Qt.LeftButton)
        assert connection_config_dialog.view.label_info.text() == user.key.pubkey
    
    
    @pytest.mark.asyncio
    async def test_register_empty_blockchain(application, fake_server, bob):
        connection_config_dialog = ConnectionConfigController.create_connection(None, application)
    
        def close_dialog():
            if connection_config_dialog.view.isVisible():
                connection_config_dialog.view.close()
    
        async def exec_test():
            QTest.keyClicks(connection_config_dialog.view.edit_server, fake_server.peer_doc().endpoints[0].ipv4)
            connection_config_dialog.view.spinbox_port.setValue(fake_server.peer_doc().endpoints[0].port)
            assert connection_config_dialog.view.stacked_pages.currentWidget() == connection_config_dialog.view.page_node
            await asyncio.sleep(0.6)
            QTest.mouseClick(connection_config_dialog.view.button_register, Qt.LeftButton)
            await asyncio.sleep(0.6)
    
            assert connection_config_dialog.view.stacked_pages.currentWidget() == connection_config_dialog.view.page_connection
            assert_key_parameters_behaviour(connection_config_dialog, bob)
            QTest.mouseClick(connection_config_dialog.view.button_next, Qt.LeftButton)
            connection_config_dialog.model.connection.password = bob.password
            await asyncio.sleep(10)
            assert connection_config_dialog.view.stacked_pages.currentWidget() == connection_config_dialog.view.page_services
            assert len(ConnectionsProcessor.instanciate(application).connections(fake_server.forge.currency)) == 1
    
        application.loop.call_later(10, close_dialog)
        asyncio.ensure_future(exec_test())
        await connection_config_dialog.async_exec()
        await fake_server.close()
    
    
    @pytest.mark.asyncio
    async def test_connect(application, simple_fake_server, bob):
        connection_config_dialog = ConnectionConfigController.create_connection(None, application)
    
        def close_dialog():
            if connection_config_dialog.view.isVisible():
                connection_config_dialog.view.close()
    
        async def exec_test():
            QTest.keyClicks(connection_config_dialog.view.edit_server, simple_fake_server.peer_doc().endpoints[0].ipv4)
            connection_config_dialog.view.spinbox_port.setValue(simple_fake_server.peer_doc().endpoints[0].port)
            assert connection_config_dialog.view.stacked_pages.currentWidget() == connection_config_dialog.view.page_node
            QTest.mouseClick(connection_config_dialog.view.button_connect, Qt.LeftButton)
            await asyncio.sleep(1)
    
            assert connection_config_dialog.view.stacked_pages.currentWidget() == connection_config_dialog.view.page_connection
            assert_key_parameters_behaviour(connection_config_dialog, bob)
            QTest.mouseClick(connection_config_dialog.view.button_next, Qt.LeftButton)
            await asyncio.sleep(1)
    
            assert connection_config_dialog.view.stacked_pages.currentWidget() == connection_config_dialog.view.page_services
            assert len(ConnectionsProcessor.instanciate(application).connections(simple_fake_server.forge.currency)) == 1
    
        application.loop.call_later(10, close_dialog)
        asyncio.ensure_future(exec_test())
        await connection_config_dialog.async_exec()
        await simple_fake_server.close()
    
    
    @pytest.mark.asyncio
    async def test_connect_wrong_uid(application, simple_fake_server, wrong_bob_uid, bob):
        connection_config_dialog = ConnectionConfigController.create_connection(None, application)
    
        def close_dialog():
            if connection_config_dialog.view.isVisible():
                connection_config_dialog.view.close()
    
        async def exec_test():
            await asyncio.sleep(1)
            QTest.keyClicks(connection_config_dialog.view.edit_server, simple_fake_server.peer_doc().endpoints[0].ipv4)
            connection_config_dialog.view.spinbox_port.setValue(simple_fake_server.peer_doc().endpoints[0].port)
            assert connection_config_dialog.view.stacked_pages.currentWidget() == connection_config_dialog.view.page_node
            QTest.mouseClick(connection_config_dialog.view.button_connect, Qt.LeftButton)
            await asyncio.sleep(1)
            assert connection_config_dialog.view.stacked_pages.currentWidget() == connection_config_dialog.view.page_connection
            assert_key_parameters_behaviour(connection_config_dialog, wrong_bob_uid)
            QTest.mouseClick(connection_config_dialog.view.button_next, Qt.LeftButton)
            assert connection_config_dialog.view.label_info.text(), """Your pubkey or UID is different on the network.
    Yours : {0}, the network : {1}""".format(wrong_bob_uid.uid, bob.uid)
            connection_config_dialog.view.close()
    
        application.loop.call_later(10, close_dialog)
        asyncio.ensure_future(exec_test())
        await connection_config_dialog.async_exec()
        await simple_fake_server.close()
    
    
    @pytest.mark.asyncio
    async def test_connect_wrong_pubkey(application, simple_fake_server, wrong_bob_pubkey, bob):
        connection_config_dialog = ConnectionConfigController.create_connection(None, application)
    
        def close_dialog():
            if connection_config_dialog.view.isVisible():
                connection_config_dialog.view.close()
    
        async def exec_test():
            await asyncio.sleep(1)
            QTest.keyClicks(connection_config_dialog.view.edit_server, simple_fake_server.peer_doc().endpoints[0].ipv4)
            connection_config_dialog.view.spinbox_port.setValue(simple_fake_server.peer_doc().endpoints[0].port)
            assert connection_config_dialog.view.stacked_pages.currentWidget() == connection_config_dialog.view.page_node
            QTest.mouseClick(connection_config_dialog.view.button_connect, Qt.LeftButton)
            await asyncio.sleep(1)
            assert connection_config_dialog.view.stacked_pages.currentWidget() == connection_config_dialog.view.page_connection
            assert_key_parameters_behaviour(connection_config_dialog, wrong_bob_pubkey)
            QTest.mouseClick(connection_config_dialog.view.button_next, Qt.LeftButton)
            assert connection_config_dialog.view.label_info.text(), """Your pubkey or UID is different on the network.
    Yours : {0}, the network : {1}""".format(wrong_bob_pubkey.pubkey, bob.pubkey)
            connection_config_dialog.view.close()
    
        application.loop.call_later(10, close_dialog)
        asyncio.ensure_future(exec_test())
        await connection_config_dialog.async_exec()
        await simple_fake_server.close()