From 1c5e091887a64630a2198de826be97df63d30150 Mon Sep 17 00:00:00 2001
From: Insoleet <insomniak.fr@gmail.com>
Date: Thu, 14 Jan 2016 21:19:08 +0100
Subject: [PATCH] Fix eventloop on windows

- Use quamash fork
- Force SelectorEventLoop on windows
---
 requirements.txt                                              | 2 +-
 src/sakia/core/app.py                                         | 2 ++
 src/sakia/main.py                                             | 4 ++--
 .../functional/process_cfg_community/test_add_community.py    | 2 ++
 src/sakia/tests/quamash_utils.py                              | 2 +-
 5 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/requirements.txt b/requirements.txt
index 58d74c97..64846e86 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
 ucoinpy>=0.13
-quamash
+https://github.com/Insoleet/quamash.git@qeventloop
 asynctest
 networkx
\ No newline at end of file
diff --git a/src/sakia/core/app.py b/src/sakia/core/app.py
index 9aa906e2..87797619 100644
--- a/src/sakia/core/app.py
+++ b/src/sakia/core/app.py
@@ -524,3 +524,5 @@ class Application(QObject):
                 self.version_requested.emit()
         except (aiohttp.errors.ClientError, aiohttp.errors.TimeoutError) as e:
             logging.debug("Could not connect to github : {0}".format(str(e)))
+        except Exception as e:
+            pass
diff --git a/src/sakia/main.py b/src/sakia/main.py
index 65844f36..07e123a3 100755
--- a/src/sakia/main.py
+++ b/src/sakia/main.py
@@ -16,7 +16,7 @@ import jsonschema
 # To force cx_freeze import
 import PyQt5.QtSvg
 
-from quamash import QEventLoop
+from quamash import QEventLoopSelector
 from PyQt5.QtWidgets import QApplication
 from sakia.gui.mainwindow import MainWindow
 from sakia.core.app import Application
@@ -61,7 +61,7 @@ if __name__ == '__main__':
     # activate ctrl-c interrupt
     signal.signal(signal.SIGINT, signal.SIG_DFL)
     sakia = QApplication(sys.argv)
-    loop = QEventLoop(sakia)
+    loop = QEventLoopSelector(sakia)
     loop.set_exception_handler(async_exception_handler)
     asyncio.set_event_loop(loop)
 
diff --git a/src/sakia/tests/functional/process_cfg_community/test_add_community.py b/src/sakia/tests/functional/process_cfg_community/test_add_community.py
index 7f97a3de..48d8b0ad 100644
--- a/src/sakia/tests/functional/process_cfg_community/test_add_community.py
+++ b/src/sakia/tests/functional/process_cfg_community/test_add_community.py
@@ -31,8 +31,10 @@ class ProcessAddCommunity(unittest.TestCase, QuamashTest):
         self.password_asker = PasswordAskerDialog(self.account)
         self.password_asker.password = "testsakia"
         self.password_asker.remember = True
+        super().setUp()
 
     def tearDown(self):
+        super().tearDown()
         self.tearDownQuamash()
 
     @unittest.skipIf(sys.platform== "darwin", "Test not working on OSX, but feature is OK")
diff --git a/src/sakia/tests/quamash_utils.py b/src/sakia/tests/quamash_utils.py
index ae761052..a359319d 100644
--- a/src/sakia/tests/quamash_utils.py
+++ b/src/sakia/tests/quamash_utils.py
@@ -9,7 +9,7 @@ _application_ = []
 class QuamashTest:
     def setUpQuamash(self):
         self.qapplication = get_application()
-        self.lp = quamash.QEventLoop(self.qapplication)
+        self.lp = quamash.QEventLoopSelector(self.qapplication)
         asyncio.set_event_loop(self.lp)
         self.lp.set_exception_handler(lambda l, c: unitttest_exception_handler(self, l, c))
         self.exceptions = []
-- 
GitLab