commit:     3a55ecd1f79c31f477d7bdd0b9f0e97d8a15eb9e
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Wed May  9 14:19:11 2018 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Wed May  9 14:19:11 2018 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=3a55ecd1

DefaultEventLoopPolicy: test NotImplementedError due to recursion

 .../asyncio/test_policy_wrapper_recursion.py       | 29 ++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git 
a/pym/portage/tests/util/futures/asyncio/test_policy_wrapper_recursion.py 
b/pym/portage/tests/util/futures/asyncio/test_policy_wrapper_recursion.py
new file mode 100644
index 000000000..d3cd94b35
--- /dev/null
+++ b/pym/portage/tests/util/futures/asyncio/test_policy_wrapper_recursion.py
@@ -0,0 +1,29 @@
+# Copyright 2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+try:
+       import asyncio
+except ImportError:
+       asyncio = None
+
+from portage.tests import TestCase
+from portage.util.futures.unix_events import DefaultEventLoopPolicy
+
+
+class PolicyWrapperRecursionTestCase(TestCase):
+       def testPolicyWrapperRecursion(self):
+               if asyncio is None:
+                       self.skipTest('asyncio is not available')
+
+               initial_policy = asyncio.get_event_loop_policy()
+               if not isinstance(initial_policy, DefaultEventLoopPolicy):
+                       asyncio.set_event_loop_policy(DefaultEventLoopPolicy())
+
+               try:
+                       with self.assertRaises(NotImplementedError):
+                               asyncio.get_event_loop()
+
+                       with self.assertRaises(NotImplementedError):
+                               asyncio.get_child_watcher()
+               finally:
+                       asyncio.set_event_loop_policy(initial_policy)

Reply via email to