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)