diff --git a/src/sakia/core/app.py b/src/sakia/core/app.py index b71e4fe9693de2f40a500cb152d95e5fec3feb8c..9aa906e29e5fbf21d78d9756f6e8abbd9ba018ef 100644 --- a/src/sakia/core/app.py +++ b/src/sakia/core/app.py @@ -522,5 +522,5 @@ class Application(QObject): logging.debug("Current version : {0}".format(__version__)) self.available_version = version self.version_requested.emit() - except aiohttp.errors.ClientError as e: + except (aiohttp.errors.ClientError, aiohttp.errors.TimeoutError) as e: logging.debug("Could not connect to github : {0}".format(str(e))) diff --git a/src/sakia/tests/unit/core/test_application.py b/src/sakia/tests/unit/core/test_application.py new file mode 100644 index 0000000000000000000000000000000000000000..3065f89c792da2ad64f651751cc67999c8498f00 --- /dev/null +++ b/src/sakia/tests/unit/core/test_application.py @@ -0,0 +1,28 @@ +import aiohttp +import sys +import unittest +import asyncio +from asynctest.mock import Mock, CoroutineMock, patch +from PyQt5.QtCore import QLocale +from sakia.tests import QuamashTest +from sakia.core import Application + + +class TestApplication(unittest.TestCase, QuamashTest): + def setUp(self): + self.setUpQuamash() + QLocale.setDefault(QLocale("en_GB")) + + def tearDown(self): + self.tearDownQuamash() + + @patch('sakia.core.registry.IdentitiesRegistry') + @patch('aiohttp.get', CoroutineMock(side_effect=lambda *args, **kwargs: exec('raise aiohttp.errors.TimeoutError()'))) + def test_get_last_version_timeout(self, identities_registry): + app = Application(self.qapplication, self.lp, identities_registry) + + async def exec_test(): + app.get_last_version() + asyncio.sleep(5) + + self.lp.run_until_complete(exec_test())