X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=blobdiff_plain;f=n2vc%2Ftests%2Funit%2Ftest_libjuju.py;h=27f04545432d95717345e120351bafce44aa5fd6;hp=f517afc5da58988bb03eca8704af1460db7c883a;hb=refs%2Fchanges%2F38%2F9638%2F5;hpb=42f328a34a3ec7c066350de81e1331632a3fee92 diff --git a/n2vc/tests/unit/test_libjuju.py b/n2vc/tests/unit/test_libjuju.py index f517afc..27f0454 100644 --- a/n2vc/tests/unit/test_libjuju.py +++ b/n2vc/tests/unit/test_libjuju.py @@ -907,3 +907,38 @@ class ModelsExistTest(LibjujuTestCase): ) self.assertTrue(exist) self.assertEqual(non_existing_models, []) + + +@asynctest.mock.patch("n2vc.libjuju.Libjuju.get_controller") +@asynctest.mock.patch("n2vc.libjuju.Libjuju.disconnect_controller") +@asynctest.mock.patch("juju.controller.Controller.list_offers") +class ListOffers(LibjujuTestCase): + def setUp(self): + super(ListOffers, self).setUp() + + def test_disconnect_controller( + self, mock_list_offers, mock_disconnect_controller, mock_get_controller, + ): + mock_get_controller.return_value = juju.controller.Controller() + mock_list_offers.side_effect = Exception() + with self.assertRaises(Exception): + self.loop.run_until_complete(self.libjuju.list_offers("model")) + mock_disconnect_controller.assert_called_once() + + def test_empty_list( + self, mock_list_offers, mock_disconnect_controller, mock_get_controller, + ): + mock_get_controller.return_value = juju.controller.Controller() + mock_list_offers.return_value = [] + offers = self.loop.run_until_complete(self.libjuju.list_offers("model")) + self.assertEqual(offers, []) + mock_disconnect_controller.assert_called_once() + + def test_non_empty_list( + self, mock_list_offers, mock_disconnect_controller, mock_get_controller, + ): + mock_get_controller.return_value = juju.controller.Controller() + mock_list_offers.return_value = ["offer"] + offers = self.loop.run_until_complete(self.libjuju.list_offers("model")) + self.assertEqual(offers, ["offer"]) + mock_disconnect_controller.assert_called_once()