mirror of
https://github.com/sissbruecker/linkding.git
synced 2025-08-07 10:58:25 +02:00
Add error handling for checking latest version (#360)
This commit is contained in:
@@ -59,13 +59,13 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin):
|
|||||||
''', html)
|
''', html)
|
||||||
|
|
||||||
def test_get_version_info_just_displays_latest_when_versions_are_equal(self):
|
def test_get_version_info_just_displays_latest_when_versions_are_equal(self):
|
||||||
latest_version_response_mock = Mock(status_code=201, json=lambda: {'name': f'v{app_version}'})
|
latest_version_response_mock = Mock(status_code=200, json=lambda: {'name': f'v{app_version}'})
|
||||||
with patch.object(requests, 'get', return_value=latest_version_response_mock):
|
with patch.object(requests, 'get', return_value=latest_version_response_mock):
|
||||||
version_info = get_version_info(random.random())
|
version_info = get_version_info(random.random())
|
||||||
self.assertEqual(version_info, f'{app_version} (latest)')
|
self.assertEqual(version_info, f'{app_version} (latest)')
|
||||||
|
|
||||||
def test_get_version_info_shows_latest_version_when_versions_are_not_equal(self):
|
def test_get_version_info_shows_latest_version_when_versions_are_not_equal(self):
|
||||||
latest_version_response_mock = Mock(status_code=201, json=lambda: {'name': f'v123.0.1'})
|
latest_version_response_mock = Mock(status_code=200, json=lambda: {'name': f'v123.0.1'})
|
||||||
with patch.object(requests, 'get', return_value=latest_version_response_mock):
|
with patch.object(requests, 'get', return_value=latest_version_response_mock):
|
||||||
version_info = get_version_info(random.random())
|
version_info = get_version_info(random.random())
|
||||||
self.assertEqual(version_info, f'{app_version} (latest: 123.0.1)')
|
self.assertEqual(version_info, f'{app_version} (latest: 123.0.1)')
|
||||||
@@ -74,3 +74,14 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin):
|
|||||||
with patch.object(requests, 'get', side_effect=RequestException()):
|
with patch.object(requests, 'get', side_effect=RequestException()):
|
||||||
version_info = get_version_info(random.random())
|
version_info = get_version_info(random.random())
|
||||||
self.assertEqual(version_info, f'{app_version}')
|
self.assertEqual(version_info, f'{app_version}')
|
||||||
|
|
||||||
|
def test_get_version_info_handles_invalid_response(self):
|
||||||
|
latest_version_response_mock = Mock(status_code=403, json=lambda: {})
|
||||||
|
with patch.object(requests, 'get', return_value=latest_version_response_mock):
|
||||||
|
version_info = get_version_info(random.random())
|
||||||
|
self.assertEqual(version_info, app_version)
|
||||||
|
|
||||||
|
latest_version_response_mock = Mock(status_code=200, json=lambda: {})
|
||||||
|
with patch.object(requests, 'get', return_value=latest_version_response_mock):
|
||||||
|
version_info = get_version_info(random.random())
|
||||||
|
self.assertEqual(version_info, app_version)
|
||||||
|
@@ -54,7 +54,8 @@ def get_version_info(ttl_hash=None):
|
|||||||
latest_version_url = 'https://api.github.com/repos/sissbruecker/linkding/releases/latest'
|
latest_version_url = 'https://api.github.com/repos/sissbruecker/linkding/releases/latest'
|
||||||
response = requests.get(latest_version_url, timeout=5)
|
response = requests.get(latest_version_url, timeout=5)
|
||||||
json = response.json()
|
json = response.json()
|
||||||
latest_version = json['name'][1:]
|
if response.status_code == 200 and 'name' in json:
|
||||||
|
latest_version = json['name'][1:]
|
||||||
except requests.exceptions.RequestException:
|
except requests.exceptions.RequestException:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user