From 019f243aade24b23bd7df62fc03140dc75c9ba4d Mon Sep 17 00:00:00 2001 From: Inso <insomniak.fr@gmail.com> Date: Sun, 25 Jan 2015 20:02:53 +0100 Subject: [PATCH] More network errors catching --- src/cutecoin/core/community.py | 26 +++++------------------ src/cutecoin/gui/process_cfg_account.py | 5 +++++ src/cutecoin/gui/process_cfg_community.py | 26 +++++++++++++++++------ src/cutecoin/models/peering.py | 6 ++---- 4 files changed, 31 insertions(+), 32 deletions(-) diff --git a/src/cutecoin/core/community.py b/src/cutecoin/core/community.py index cef3bf7c..dda64837 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 7ef72a8a..4384dba4 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 ac25c61b..a841d9f1 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 dffe9639..079218b2 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: -- GitLab