Skip to content
Snippets Groups Projects
Select Git revision
  • 6298000d05ca9517ef2735e333609660592ecd98
  • dev default protected
  • vainamoinen197-transactiondocument-replace-vec-fields-by-smallvec-2
  • dvermd/200-keypairs-dewif
  • elois/wot
  • jawaka/155-dbex-add-dump-fork-tree-command
  • elois/195-bcdbwriteop
  • elois/deps-crypto
  • elois/gva-monetary-mass
  • elois/191-sled
  • elois/195
  • ji_emme/gva-humantimefield
  • 184-gva-rename-commontime-field-to-blockchaintime
  • ji_emme/182-gva-implement-block-meta-data
  • ji_emme/rml14
  • hugo/151-ws2pv2-sync
  • ji_emme/181-gva-implement-identity-request
  • ji_emme/89-implement-client-api-gva-graphql-verification-api
  • logo
  • test-juniper-from-schema
  • elois/exemple-gva-global-context
  • v0.2.0-a4 protected
  • v0.2.0-a2 protected
  • v0.2.0-a protected
  • v0.1.1-a1 protected
  • documents/v0.10.0-b1 protected
  • crypto/v0.4.0-b1 protected
  • crypto/v0.3.0-b3 protected
  • crypto/v0.3.0-b2 protected
  • crypto/v0.3.0-b1 protected
  • wot/v0.8.0-a0.9 protected
  • wot/v0.8.0-a0.8 protected
  • 0.1.0-a0.1 protected
  • v0.0.1-a0.12 protected
  • v0.0.1-a0.11 protected
  • v0.0.1-a0.10 protected
  • v0.0.1-a0.9 protected
  • v0.0.1-a0.8 protected
  • v0.0.1-a0.7 protected
  • v0.0.1-a0.6 protected
  • v0.0.1-a0.5 protected
41 results

lib.rs

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()