diff options
Diffstat (limited to 'charms/trusty/ceilometer/unit_tests/test_actions_openstack_upgrade.py')
-rw-r--r-- | charms/trusty/ceilometer/unit_tests/test_actions_openstack_upgrade.py | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/charms/trusty/ceilometer/unit_tests/test_actions_openstack_upgrade.py b/charms/trusty/ceilometer/unit_tests/test_actions_openstack_upgrade.py new file mode 100644 index 0000000..3babe21 --- /dev/null +++ b/charms/trusty/ceilometer/unit_tests/test_actions_openstack_upgrade.py @@ -0,0 +1,67 @@ +import os +import sys + +from mock import patch, MagicMock + +# python-apt is not installed as part of test-requirements but is imported by +# some charmhelpers modules so create a fake import. +mock_apt = MagicMock() +sys.modules['apt'] = mock_apt +mock_apt.apt_pkg = MagicMock() + +os.environ['JUJU_UNIT_NAME'] = 'ceilometer' + +with patch('charmhelpers.contrib.hardening.harden.harden') as mock_dec: + mock_dec.side_effect = (lambda *dargs, **dkwargs: lambda f: + lambda *args, **kwargs: f(*args, **kwargs)) + with patch('ceilometer_utils.register_configs') as register_configs: + with patch('ceilometer_utils.ceilometer_release_services'): + import openstack_upgrade + +from test_utils import ( + CharmTestCase +) + +TO_PATCH = [ + 'config_changed', + 'do_openstack_upgrade', +] + + +class TestCeilometerUpgradeActions(CharmTestCase): + + def setUp(self): + super(TestCeilometerUpgradeActions, self).setUp(openstack_upgrade, + TO_PATCH) + + @patch('charmhelpers.contrib.openstack.utils.juju_log') + @patch('charmhelpers.contrib.openstack.utils.config') + @patch('charmhelpers.contrib.openstack.utils.action_set') + @patch('charmhelpers.contrib.openstack.utils.git_install_requested') + @patch('charmhelpers.contrib.openstack.utils.openstack_upgrade_available') + def test_openstack_upgrade_true(self, upgrade_avail, git_requested, + action_set, config, log): + git_requested.return_value = False + upgrade_avail.return_value = True + config.return_value = True + + openstack_upgrade.openstack_upgrade() + + self.assertTrue(self.do_openstack_upgrade.called) + self.assertTrue(self.config_changed.called) + + @patch('charmhelpers.contrib.openstack.utils.juju_log') + @patch('charmhelpers.contrib.openstack.utils.config') + @patch('charmhelpers.contrib.openstack.utils.action_set') + @patch('charmhelpers.contrib.openstack.utils.git_install_requested') + @patch('charmhelpers.contrib.openstack.utils.openstack_upgrade_available') + def test_openstack_upgrade_false(self, upgrade_avail, git_requested, + action_set, config, log): + git_requested.return_value = False + upgrade_avail.return_value = True + config.return_value = False + + openstack_upgrade.openstack_upgrade() + + self.assertFalse(self.do_openstack_upgrade.called) + self.assertFalse(self.config_changed.called) |