charm-neutron-gateway/unit_tests/test_actions_openstack_upgrade.py
Alex Kavanagh 86b3e38a54 Remove load-time mocking from unit tests
This patchset removes the load-time mocking necessary due to load-time
function calls in 'constants'.  The constants are changed to run-time
functions and and the lazy feature of restart_on_change is used, and the
harden disable for unit testing is switched on when needed.

Change-Id: I73e719ed082a7c8f9c477fd82094532bdbb8029b
2019-08-23 17:02:20 +01:00

51 lines
1.6 KiB
Python

from mock import patch
import os
from test_utils import (
CharmTestCase
)
os.environ['JUJU_UNIT_NAME'] = 'neutron-gateway'
import openstack_upgrade
TO_PATCH = [
'do_openstack_upgrade',
'config_changed',
'charmhelpers.core.hookenv.log',
'charmhelpers.contrib.openstack.utils.juju_log',
]
class TestNeutronGWUpgradeActions(CharmTestCase):
def setUp(self):
super(TestNeutronGWUpgradeActions, self).setUp(openstack_upgrade,
TO_PATCH)
@patch('charmhelpers.contrib.openstack.utils.config')
@patch('charmhelpers.contrib.openstack.utils.action_set')
@patch('charmhelpers.contrib.openstack.utils.openstack_upgrade_available')
def test_openstack_upgrade_true(self, upgrade_avail,
action_set, config):
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.config')
@patch('charmhelpers.contrib.openstack.utils.action_set')
@patch('charmhelpers.contrib.openstack.utils.openstack_upgrade_available')
def test_openstack_upgrade_false(self, upgrade_avail,
action_set, config):
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)