From 19df671f20738ec2aef772e0a90b6b43f233727d Mon Sep 17 00:00:00 2001 From: Christian Fobel Date: Fri, 18 Aug 2017 19:12:20 -0400 Subject: [PATCH 1/2] Handle network error during version cache --- microdrop_launcher/microdrop_version.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/microdrop_launcher/microdrop_version.py b/microdrop_launcher/microdrop_version.py index 615b562..ffd8831 100644 --- a/microdrop_launcher/microdrop_version.py +++ b/microdrop_launcher/microdrop_version.py @@ -32,14 +32,7 @@ def cache_microdrop_version(): # Try to look up available versions of MicroDrop from Conda channels # and which version is installed. version_info = conda_version_info('microdrop') - except IOError: - # Conda executable not found. - return - except sp.CalledProcessError: - # `conda search` command failed, e.g., no internet connection - # is available. - return - else: + installed_info = version_info['installed'] if not installed_info: # No `microdrop` Conda package found. @@ -89,6 +82,20 @@ def cache_microdrop_version(): except: logger.error('Error caching latest version.', exc_info=True) + except RuntimeError, exception: + if 'CondaHTTPError' in str(exception): + # Error accessing Conda server. + logger.warning('Could not connect to server.') + return + else: + logger.debug('Error checking MicroDrop version') + except IOError: + # Conda executable not found. + return + except sp.CalledProcessError: + # `conda search` command failed, e.g., no internet connection + # is available. + return def load_cached_version(): From e97d4c9c4eb44ac059820d89facfad95f550e2fd Mon Sep 17 00:00:00 2001 From: Christian Fobel Date: Fri, 18 Aug 2017 19:12:57 -0400 Subject: [PATCH 2/2] Handle situation where installed version is None --- microdrop_launcher/profile.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/microdrop_launcher/profile.py b/microdrop_launcher/profile.py index 42149bf..b9dc296 100644 --- a/microdrop_launcher/profile.py +++ b/microdrop_launcher/profile.py @@ -73,9 +73,10 @@ def check_version_cache_for_upgrade(): # If cached latest MicroDrop version is more recent than the currently # installed version, prompt user to offer to upgrade. if all([GUI_AVAILABLE, not cached_info.get('ignore'), - latest_version is not None, - pkg_resources.parse_version(latest_version) > - pkg_resources.parse_version(installed_version)]): + latest_version is not None]): + if (pkg_resources.parse_version(latest_version) <= + pkg_resources.parse_version(installed_version)): + return # Display dialog. dialog = gtk.MessageDialog(type=gtk.MESSAGE_QUESTION) dialog.set_icon_from_file(ICON_PATH)