From 4d3090a028701c27af11924f2acc618210d9378d Mon Sep 17 00:00:00 2001
From: inso <insomniak.fr@gmaiL.com>
Date: Sun, 2 Apr 2017 08:46:44 +0200
Subject: [PATCH] Fix error when connecting with pubkey + test

---
 .../gui/dialogs/connection_cfg/controller.py  |  2 +-
 .../functional/test_connection_cfg_dialog.py  | 33 +++++++++++++++++++
 2 files changed, 34 insertions(+), 1 deletion(-)

diff --git a/src/sakia/gui/dialogs/connection_cfg/controller.py b/src/sakia/gui/dialogs/connection_cfg/controller.py
index 7cf9a5fb..d1476b07 100644
--- a/src/sakia/gui/dialogs/connection_cfg/controller.py
+++ b/src/sakia/gui/dialogs/connection_cfg/controller.py
@@ -159,7 +159,7 @@ class ConnectionConfigController(QObject):
         elif self.mode == ConnectionConfigController.PUBKEY:
             self._logger.debug("Pubkey mode")
             self.view.button_next.clicked.connect(self.check_pubkey)
-            if not self.view.label_action.text().endswidth(self.tr(" (Optional)")):
+            if not self.view.label_action.text().endswith(self.tr(" (Optional)")):
                 self.view.label_action.setText(self.view.label_action.text() + self.tr(" (Optional)"))
             self.view.groupbox_key.hide()
             self.view.stacked_pages.setCurrentWidget(self.view.page_connection)
diff --git a/tests/functional/test_connection_cfg_dialog.py b/tests/functional/test_connection_cfg_dialog.py
index 3c2dd2e6..09e3b610 100644
--- a/tests/functional/test_connection_cfg_dialog.py
+++ b/tests/functional/test_connection_cfg_dialog.py
@@ -28,6 +28,12 @@ def assert_key_parameters_behaviour(connection_config_dialog, user):
     assert connection_config_dialog.view.label_info.text() == user.key.pubkey
 
 
+def assert_pubkey_parameters_behaviour(connection_config_dialog, user):
+    QTest.keyClicks(connection_config_dialog.view.edit_uid, user.uid)
+    QTest.keyClicks(connection_config_dialog.view.edit_pubkey, user.key.pubkey)
+    assert connection_config_dialog.view.button_next.isEnabled() is True
+
+
 @pytest.mark.asyncio
 async def test_register_empty_blockchain(application, fake_server, bob):
     connection_config_dialog = ConnectionConfigController.create_connection(None, application)
@@ -137,3 +143,30 @@ Yours : {0}, the network : {1}""".format(wrong_bob_pubkey.pubkey, bob.pubkey)
     await connection_config_dialog.async_exec()
     await simple_fake_server.close()
 
+
+
+@pytest.mark.asyncio
+async def test_connect_pubkey_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():
+        QTest.mouseClick(connection_config_dialog.view.button_pubkey, Qt.LeftButton)
+        await asyncio.sleep(0.6)
+        QTest.mouseClick(connection_config_dialog.view.button_accept, Qt.LeftButton)
+        await asyncio.sleep(0.1)
+        assert connection_config_dialog.view.stacked_pages.currentWidget() == connection_config_dialog.view.page_connection
+        assert_pubkey_parameters_behaviour(connection_config_dialog, wrong_bob_uid)
+        QTest.mouseClick(connection_config_dialog.view.button_next, Qt.LeftButton)
+        await asyncio.sleep(0.6)
+        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()
-- 
GitLab