From 6e7763bdf7dd4109be47311c9c473e01f5f394fd Mon Sep 17 00:00:00 2001 From: Inso <insomniak.fr@gmail.com> Date: Wed, 16 Sep 2015 19:49:42 +0200 Subject: [PATCH] Fix lookup not called when looking for identies --- src/cutecoin/core/registry/identities.py | 11 ++++------- src/cutecoin/gui/identities_tab.py | 2 +- src/cutecoin/gui/transactions_tab.py | 2 ++ 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/cutecoin/core/registry/identities.py b/src/cutecoin/core/registry/identities.py index 0132ba97..ba8857ac 100644 --- a/src/cutecoin/core/registry/identities.py +++ b/src/cutecoin/core/registry/identities.py @@ -47,8 +47,7 @@ class IdentitiesRegistry: @asyncio.coroutine def future_find(self, pubkey, community): def lookup(): - identity = Identity.empty(pubkey) - self._instances[pubkey] = identity + nonlocal identity lookup_tries = 0 while lookup_tries < 3: try: @@ -67,7 +66,6 @@ class IdentitiesRegistry: identity.blockchain_state = BlockchainState.BUFFERED identity.local_state = LocalState.PARTIAL logging.debug("Lookup : found {0}".format(identity)) - return identity except ValueError as e: lookup_tries += 1 except asyncio.TimeoutError: @@ -75,8 +73,7 @@ class IdentitiesRegistry: except ClientError: lookup_tries += 1 except NoPeerAvailable: - return identity - return identity + pass if pubkey in self._instances: identity = self._instances[pubkey] @@ -92,8 +89,8 @@ class IdentitiesRegistry: identity.blockchain_state = BlockchainState.VALIDATED return identity except ValueError as e: - if '404' in str(e): - return (yield from lookup()) + if '404' in str(e) or '400' in str(e): + yield from lookup() else: tries += 1 except asyncio.TimeoutError: diff --git a/src/cutecoin/gui/identities_tab.py b/src/cutecoin/gui/identities_tab.py index a9a3e5dc..7c39dfeb 100644 --- a/src/cutecoin/gui/identities_tab.py +++ b/src/cutecoin/gui/identities_tab.py @@ -222,6 +222,7 @@ class IdentitiesTabWidget(QWidget, Ui_IdentitiesTab): if self.account and self.community: try: self.busy.show() + self.refresh_identities([]) self_identity = yield from self.account.identity(self.community) account_connections = [] certs_of = yield from self_identity.unique_valid_certifiers_of(self.app.identities_registry, self.community) @@ -238,7 +239,6 @@ class IdentitiesTabWidget(QWidget, Ui_IdentitiesTab): except NoPeerAvailable: pass finally: - self.refresh_identities([]) self.busy.hide() @once_at_a_time diff --git a/src/cutecoin/gui/transactions_tab.py b/src/cutecoin/gui/transactions_tab.py index cf6a431e..8ef3ee40 100644 --- a/src/cutecoin/gui/transactions_tab.py +++ b/src/cutecoin/gui/transactions_tab.py @@ -98,6 +98,8 @@ class TransactionsTabWidget(QWidget, Ui_transactionsTabWidget): self.date_to.setMaximumDateTime(tomorrow_datetime) except NoPeerAvailable as e: logging.debug(str(e)) + except ValueError as e: + logging.debug(str(e)) def refresh(self): #TODO: Use resetmodel instead of destroy/create -- GitLab