Skip to content

Commit 84220e6

Browse files
committed
Port another _get_current_loop/get_event_loop test from asyncio
1 parent 57a3abe commit 84220e6

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

tests/test_base.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -554,3 +554,30 @@ def runner(loop):
554554

555555
finally:
556556
asyncio.set_event_loop_policy(None)
557+
558+
@unittest.skipUnless(hasattr(asyncio, '_get_running_loop'),
559+
'No asyncio._get_running_loop')
560+
def test_get_event_loop_returns_running_loop(self):
561+
class Policy(asyncio.DefaultEventLoopPolicy):
562+
def get_event_loop(self):
563+
raise NotImplementedError
564+
565+
loop = None
566+
567+
old_policy = asyncio.get_event_loop_policy()
568+
try:
569+
asyncio.set_event_loop_policy(Policy())
570+
loop = uvloop.new_event_loop()
571+
self.assertIs(asyncio._get_running_loop(), None)
572+
573+
async def func():
574+
self.assertIs(asyncio.get_event_loop(), loop)
575+
self.assertIs(asyncio._get_running_loop(), loop)
576+
577+
loop.run_until_complete(func())
578+
finally:
579+
asyncio.set_event_loop_policy(old_policy)
580+
if loop is not None:
581+
loop.close()
582+
583+
self.assertIs(asyncio._get_running_loop(), None)

0 commit comments

Comments
 (0)