diff --git a/src/cutecoin/core/community.py b/src/cutecoin/core/community.py index cef3bf7cf698ecc5b96f593da603decad886122d..dda64837a5cdfa31eb2d0c724d86bb8f4f5bfd29 100644 --- a/src/cutecoin/core/community.py +++ b/src/cutecoin/core/community.py @@ -12,7 +12,7 @@ from ..tools.exceptions import NoPeerAvailable import logging import inspect import hashlib -from requests.exceptions import RequestException, ConnectTimeout +from requests.exceptions import RequestException, Timeout class Cache(): @@ -128,7 +128,7 @@ class Community(object): (next_peer.pubkey not in traversed_pubkeys))) if next_peer.pubkey not in traversed_pubkeys: self._peering_traversal(next_peer, found_peers, traversed_pubkeys) - except TimeoutError: + except Timeout: pass except ValueError: pass @@ -208,12 +208,7 @@ class Community(object): continue else: raise - except ConnectTimeout: - # Move the timeout peer to the end - self.peers.remove(peer) - self.peers.append(peer) - continue - except TimeoutError: + except Timeout: # Move the timeout peer to the end self.peers.remove(peer) self.peers.append(peer) @@ -230,12 +225,7 @@ class Community(object): return except ValueError as e: raise - except ConnectTimeout: - # Move the timeout peer to the end - self.peers.remove(peer) - self.peers.append(peer) - continue - except TimeoutError: + except Timeout: # Move the timeout peer to the end self.peers.remove(peer) self.peers.append(peer) @@ -258,13 +248,7 @@ class Community(object): except ValueError as e: value_error = e continue - except ConnectTimeout: - tries = tries + 1 - # Move the timeout peer to the end - self.peers.remove(peer) - self.peers.append(peer) - continue - except TimeoutError: + except Timeout: tries = tries + 1 # Move the timeout peer to the end self.peers.remove(peer) diff --git a/src/cutecoin/gui/process_cfg_account.py b/src/cutecoin/gui/process_cfg_account.py index 7ef72a8a435e56428af419cf03caf10d758e2b31..4384dba4b181268ba99599d0aa75609d0da9c9e2 100644 --- a/src/cutecoin/gui/process_cfg_account.py +++ b/src/cutecoin/gui/process_cfg_account.py @@ -4,6 +4,7 @@ Created on 6 mars 2014 @author: inso ''' import logging +import requests from ucoinpy.documents.peer import Peer from ucoinpy.key import SigningKey from ..gen_resources.account_cfg_uic import Ui_AccountConfigurationDialog @@ -197,6 +198,10 @@ class ProcessConfigureAccount(QDialog, Ui_AccountConfigurationDialog): QMessageBox.critical(self, "Error", str(e), QMessageBox.Ok) return + except requests.exceptions.RequestException as e: + QMessageBox.critical(self, "Error", + str(e), QMessageBox.Ok) + return dialog.accepted.connect(self.action_edit_community) dialog.exec_() diff --git a/src/cutecoin/gui/process_cfg_community.py b/src/cutecoin/gui/process_cfg_community.py index ac25c61b9901273a5ce742579c89124080e2c8e9..a841d9f15fabe248d626e3da7f4ac1e79f08ddbc 100644 --- a/src/cutecoin/gui/process_cfg_community.py +++ b/src/cutecoin/gui/process_cfg_community.py @@ -68,7 +68,7 @@ class StepPageInit(Step): "Cannot join any peer in this community.") raise except requests.exceptions.RequestException as e: - QMessageBox.critical(self, ":(", + QMessageBox.critical(self.config_dialog, ":(", str(e), QMessageBox.Ok) raise @@ -94,7 +94,11 @@ class StepPageAddpeers(Step): # We add already known peers to the displayed list for peer in self.config_dialog.community.peers: self.config_dialog.peers.append(peer) - tree_model = PeeringTreeModel(self.config_dialog.community) + try: + tree_model = PeeringTreeModel(self.config_dialog.community) + except requests.exceptions.RequestException: + raise + self.config_dialog.tree_peers.setModel(tree_model) self.config_dialog.button_previous.setEnabled(False) self.config_dialog.button_next.setText("Ok") @@ -136,11 +140,19 @@ class ProcessConfigureCommunity(QDialog, Ui_CommunityConfigurationDialog): def next(self): if self.step.next_step is not None: if self.step.is_valid(): - self.step.process_next() - self.step = self.step.next_step - next_index = self.stacked_pages.currentIndex() + 1 - self.stacked_pages.setCurrentIndex(next_index) - self.step.display_page() + try: + self.step.process_next() + self.step = self.step.next_step + next_index = self.stacked_pages.currentIndex() + 1 + self.stacked_pages.setCurrentIndex(next_index) + self.step.display_page() + except NoPeerAvailable: + return + except requests.exceptions.RequestException as e: + QMessageBox.critical(self.config_dialog, ":(", + str(e), + QMessageBox.Ok) + return else: self.accept() diff --git a/src/cutecoin/models/peering.py b/src/cutecoin/models/peering.py index dffe96397dd9135589017e951d4ff5a213fa97c0..079218b2e4275aa021d0acaf1a71dff2a98ebc49 100644 --- a/src/cutecoin/models/peering.py +++ b/src/cutecoin/models/peering.py @@ -8,7 +8,7 @@ from ucoinpy.api import bma from ucoinpy.documents.peer import BMAEndpoint, Peer from PyQt5.QtCore import QAbstractItemModel, QModelIndex, Qt from .peer import PeerItem, RootItem -from requests.exceptions import ConnectTimeout +from requests.exceptions import Timeout import logging @@ -111,9 +111,7 @@ class PeeringTreeModel(QAbstractItemModel): peer_data['value']['signature'])) child_node_item = PeerItem(peer, peer_item) peer_item.appendChild(child_node_item) - except ConnectTimeout: - continue - except TimeoutError: + except Timeout: continue except StopIteration as e: