Skip to content

Commit

Permalink
Merge pull request #21433 from mrclary/requests-follow-up
Browse files Browse the repository at this point in the history
PR: Follow-up to using the `requests` library for updates
  • Loading branch information
ccordoba12 authored Oct 19, 2023
2 parents 1c90bcc + cfbdddc commit 39dc4c4
Showing 1 changed file with 16 additions and 6 deletions.
22 changes: 16 additions & 6 deletions spyder/workers/updates.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
# Third party imports
from qtpy.QtCore import QObject, Signal
import requests
from requests.adapters import ConnectionError, SSLError
from requests.exceptions import ConnectionError, HTTPError, SSLError

# Local imports
from spyder import __version__
Expand All @@ -27,16 +27,22 @@
# Logger setup
logger = logging.getLogger(__name__)

CONNECT_ERROR_MSG = _(
'Unable to connect to the Spyder update service.'
'<br><br>Make sure your connection is working properly.'
)

HTTP_ERROR_MSG = _(
'HTTP error {status_code} when checking for updates.'
'<br><br>Make sure your connection is working properly,'
'and try again later.'
)

SSL_ERROR_MSG = _(
'SSL certificate verification failed while checking for Spyder updates.'
'<br><br>Please contact your network administrator for assistance.'
)

CONNECT_ERROR_MSG = _(
'Unable to connect to the internet while checking for Spyder updates.'
'<br><br>Make sure the connection is working properly.'
)


class UpdateDownloadCancelledException(Exception):
"""Download for installer to update was cancelled."""
Expand Down Expand Up @@ -121,6 +127,7 @@ def start(self):
try:
logger.debug(f"Checking for updates from {self.url}")
page = requests.get(self.url)
page.raise_for_status()
data = page.json()

if is_pynsist() or running_in_mac_app():
Expand All @@ -146,6 +153,9 @@ def start(self):
except ConnectionError as err:
error_msg = CONNECT_ERROR_MSG
logger.debug(err, stack_info=True)
except HTTPError as err:
error_msg = HTTP_ERROR_MSG.format(page.status_code)
logger.debug(err, stack_info=True)
except Exception as err:
error = traceback.format_exc()
formatted_error = error.replace('\n', '<br>').replace(' ', '&nbsp;')
Expand Down

0 comments on commit 39dc4c4

Please sign in to comment.