X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=blobdiff_plain;f=n2vc%2Ftests%2Funit%2Ftest_libjuju.py;h=57a6ccc69bc6fd21d00a6317b6349f490a76f6b1;hp=ae390788b45e2a9b0abe6cfe957b8c21e97330e5;hb=85755d17a807df83d0e472e6e73500a4d743296b;hpb=12b29244e5d333341166ea92760b8eb245c16b27 diff --git a/n2vc/tests/unit/test_libjuju.py b/n2vc/tests/unit/test_libjuju.py index ae39078..57a6ccc 100644 --- a/n2vc/tests/unit/test_libjuju.py +++ b/n2vc/tests/unit/test_libjuju.py @@ -652,6 +652,70 @@ class GetActionTest(LibjujuTestCase): mock_disconnect_model.assert_called_once() +@asynctest.mock.patch("n2vc.libjuju.Libjuju.get_controller") +@asynctest.mock.patch("n2vc.libjuju.Libjuju.get_model") +@asynctest.mock.patch("n2vc.libjuju.Libjuju.disconnect_model") +@asynctest.mock.patch("n2vc.libjuju.Libjuju.disconnect_controller") +@asynctest.mock.patch("juju.application.Application.get_metrics") +@asynctest.mock.patch("n2vc.libjuju.Libjuju._get_application") +class GetMetricsTest(LibjujuTestCase): + def setUp(self): + super(GetMetricsTest, self).setUp() + + def test_get_metrics_success( + self, + mock_get_application, + mock_get_metrics, + mock_disconnect_controller, + mock_disconnect_model, + mock_get_model, + mock_get_controller, + ): + mock_get_application.return_value = FakeApplication() + mock_get_model.return_value = juju.model.Model() + + self.loop.run_until_complete(self.libjuju.get_metrics("model", "app1")) + + mock_disconnect_controller.assert_called_once() + mock_disconnect_model.assert_called_once() + + def test_get_metrics_exception( + self, + mock_get_application, + mock_get_metrics, + mock_disconnect_controller, + mock_disconnect_model, + mock_get_model, + mock_get_controller, + ): + mock_get_model.return_value = juju.model.Model() + mock_get_metrics.side_effect = Exception() + with self.assertRaises(Exception): + self.loop.run_until_complete(self.libjuju.get_metrics("model", "app1")) + + mock_disconnect_controller.assert_called_once() + mock_disconnect_model.assert_called_once() + + def test_missing_args_exception( + self, + mock_get_application, + mock_get_metrics, + mock_disconnect_controller, + mock_disconnect_model, + mock_get_model, + mock_get_controller, + ): + mock_get_model.return_value = juju.model.Model() + + with self.assertRaises(Exception): + self.loop.run_until_complete(self.libjuju.get_metrics("", "")) + + mock_get_controller.assert_not_called() + mock_get_model.assert_not_called() + mock_disconnect_controller.assert_not_called() + mock_disconnect_model.assert_not_called() + + @asynctest.mock.patch("n2vc.libjuju.Libjuju.get_controller") @asynctest.mock.patch("n2vc.libjuju.Libjuju.get_model") @asynctest.mock.patch("n2vc.libjuju.Libjuju.disconnect_model") @@ -1088,9 +1152,7 @@ class AddK8sTest(LibjujuTestCase): def test_add_k8s_missing_auth_data_keys(self, mock_add_cloud): with self.assertRaises(Exception): - self.loop.run_until_complete( - self.libjuju.add_k8s("cloud", {}, "") - ) + self.loop.run_until_complete(self.libjuju.add_k8s("cloud", {}, "")) mock_add_cloud.assert_not_called()