X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=blobdiff_plain;f=modules%2Flibjuju%2Ftests%2Funit%2Ftest_loop.py;fp=modules%2Flibjuju%2Ftests%2Funit%2Ftest_loop.py;h=f12368efd59949b7bb3c507c95a40706faaa9c47;hp=0000000000000000000000000000000000000000;hb=68858c1915122c2dbc8999a5cd3229694abf5f3a;hpb=032a71b2a6692b8b4e30f629a1f906d246f06736 diff --git a/modules/libjuju/tests/unit/test_loop.py b/modules/libjuju/tests/unit/test_loop.py new file mode 100644 index 0000000..f12368e --- /dev/null +++ b/modules/libjuju/tests/unit/test_loop.py @@ -0,0 +1,30 @@ +import asyncio +import unittest +import juju.loop + + +class TestLoop(unittest.TestCase): + def setUp(self): + # new event loop for each test + policy = asyncio.get_event_loop_policy() + self.loop = policy.new_event_loop() + policy.set_event_loop(self.loop) + + def tearDown(self): + self.loop.close() + + def test_run(self): + assert asyncio.get_event_loop() == self.loop + async def _test(): + return 'success' + self.assertEqual(juju.loop.run(_test()), 'success') + + def test_run_interrupt(self): + async def _test(): + juju.loop.run._sigint = True + self.assertRaises(KeyboardInterrupt, juju.loop.run, _test()) + + def test_run_exception(self): + async def _test(): + raise ValueError() + self.assertRaises(ValueError, juju.loop.run, _test())