X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=blobdiff_plain;f=n2vc%2Ftests%2Funit%2Ftest_juju_watcher.py;h=41065bff44e31c4992340c92e0b1f44c45c7c911;hp=593ff0d997902d61d510509ae108c51207ce51da;hb=refs%2Fchanges%2F47%2F10047%2F13;hpb=c38a696d168531e3c067451044262ef4d78ef11f diff --git a/n2vc/tests/unit/test_juju_watcher.py b/n2vc/tests/unit/test_juju_watcher.py index 593ff0d..41065bf 100644 --- a/n2vc/tests/unit/test_juju_watcher.py +++ b/n2vc/tests/unit/test_juju_watcher.py @@ -140,3 +140,29 @@ class StatusTest(TestCase): value = status(application) mock_derive_status.assert_called_once() self.assertTrue(isinstance(value, str)) + + +class WaitForModelTest(asynctest.TestCase): + @asynctest.mock.patch("juju.client.connector.Connector.connect") + def setUp(self, mock_connect=None): + self.loop = asyncio.new_event_loop() + self.model = Model() + + @asynctest.mock.patch("juju.model.Model.block_until") + def test_wait_for_model(self, mock_block_until): + self.loop.run_until_complete( + JujuModelWatcher.wait_for_model(self.model, timeout=None) + ) + mock_block_until.assert_called() + + @asynctest.mock.patch("asyncio.ensure_future") + @asynctest.mock.patch("asyncio.wait") + def test_wait_for_model_exception(self, mock_wait, mock_ensure_future): + task = Mock() + mock_ensure_future.return_value = task + mock_wait.side_effect = Exception + with self.assertRaises(Exception): + self.loop.run_until_complete( + JujuModelWatcher.wait_for_model(self.model, timeout=None) + ) + task.cancel.assert_called()