From 6ffe13ab29799787dd8bda203a09d2be64de3cc0 Mon Sep 17 00:00:00 2001
From: inso <insomniak.fr@gmaiL.com>
Date: Wed, 23 Aug 2017 19:56:01 +0200
Subject: [PATCH] Fix pubkey matching

---
 src/sakia/gui/sub/transfer/controller.py | 13 ++++++++-----
 tests/functional/test_transfer_dialog.py |  4 ++--
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/src/sakia/gui/sub/transfer/controller.py b/src/sakia/gui/sub/transfer/controller.py
index fd9b3a10..723767d9 100644
--- a/src/sakia/gui/sub/transfer/controller.py
+++ b/src/sakia/gui/sub/transfer/controller.py
@@ -1,10 +1,11 @@
-import asyncio
+import re
 import logging
 
 from PyQt5.QtCore import Qt, QObject, pyqtSignal
 from PyQt5.QtWidgets import QApplication, QDialog, QVBoxLayout
 
-from duniterpy.documents.crc_pubkey import CRCPubkey
+from duniterpy.documents.constants import pubkey_regex
+from duniterpy.documents import CRCPubkey
 from sakia.data.processors import ConnectionsProcessor
 from sakia.decorators import asyncify
 from sakia.gui.sub.password_input import PasswordInputController
@@ -156,7 +157,7 @@ class TransferController(QObject):
             try:
                 crc_pubkey = CRCPubkey.from_str(self.view.pubkey_value())
                 return crc_pubkey.is_valid()
-            except ValueError:
+            except AttributeError:
                 return False
         else:
             return False
@@ -183,8 +184,10 @@ class TransferController(QObject):
                 crc_pubkey = CRCPubkey.from_str(self.view.pubkey_value())
                 if crc_pubkey.is_valid():
                     pubkey = crc_pubkey.pubkey
-            except ValueError:
-                pubkey = self.view.pubkey_value()
+            except AttributeError:
+                result = re.compile("^({0})$".format(pubkey_regex)).match(self.view.pubkey_value())
+                if result:
+                    pubkey = self.view.pubkey_value()
         return pubkey
 
     @asyncify
diff --git a/tests/functional/test_transfer_dialog.py b/tests/functional/test_transfer_dialog.py
index bdf91a23..29f2aa1e 100644
--- a/tests/functional/test_transfer_dialog.py
+++ b/tests/functional/test_transfer_dialog.py
@@ -32,5 +32,5 @@ async def test_transfer(application_with_one_connection, fake_server_with_blockc
     application_with_one_connection.loop.call_later(10, close_dialog)
     transfer_dialog.view.show()
     await exec_test()
-    close_dialog()
-    await fake_server_with_blockchain.close()
+    #close_dialog()
+    #await fake_server_with_blockchain.close()
-- 
GitLab