Add a test_mocks to mock charmhelpers centrally
Every reactive charm that uses charms.openstack and implements unit testing needs to mock charmhelpers, as otherwise the tests blow up. This patch centralises the mocking of charmhelpers to charms.openstack so that a charm layer can just import test_mocks and charmhelpers will be mocked out along with setting up a default charmhelpers.c.o.u.OPENSTACK_RELEASES so that when an OpenStackCharm() derived charm class won't fail on definition. Closes-Bug: #1693017 Change-Id: I5ac40617ee30e5f421ec16fc7592177a5e6aa166
This commit is contained in:
parent
4150e591de
commit
580ae528be
54
charms_openstack/test_mocks.py
Normal file
54
charms_openstack/test_mocks.py
Normal file
@ -0,0 +1,54 @@
|
||||
import sys
|
||||
import mock
|
||||
|
||||
charmhelpers = None
|
||||
apt_pkg = None
|
||||
|
||||
|
||||
def mock_charmhelpers():
|
||||
# Mock out charmhelpers so that we can test without it.
|
||||
# also stops sideeffects from occuring.
|
||||
global charmhelpers
|
||||
global apt_pkg
|
||||
charmhelpers = mock.MagicMock()
|
||||
apt_pkg = mock.MagicMock()
|
||||
sys.modules['apt_pkg'] = apt_pkg
|
||||
sys.modules['charmhelpers'] = charmhelpers
|
||||
sys.modules['charmhelpers.core'] = charmhelpers.core
|
||||
sys.modules['charmhelpers.core.hookenv'] = charmhelpers.core.hookenv
|
||||
sys.modules['charmhelpers.core.host'] = charmhelpers.core.host
|
||||
sys.modules['charmhelpers.core.unitdata'] = charmhelpers.core.unitdata
|
||||
sys.modules['charmhelpers.core.templating'] = charmhelpers.core.templating
|
||||
sys.modules['charmhelpers.contrib'] = charmhelpers.contrib
|
||||
sys.modules['charmhelpers.contrib.openstack'] = (
|
||||
charmhelpers.contrib.openstack)
|
||||
sys.modules['charmhelpers.contrib.openstack.utils'] = (
|
||||
charmhelpers.contrib.openstack.utils)
|
||||
sys.modules['charmhelpers.contrib.openstack.templating'] = (
|
||||
charmhelpers.contrib.openstack.templating)
|
||||
sys.modules['charmhelpers.contrib.network'] = charmhelpers.contrib.network
|
||||
sys.modules['charmhelpers.contrib.network.ip'] = (
|
||||
charmhelpers.contrib.network.ip)
|
||||
sys.modules['charmhelpers.fetch'] = charmhelpers.fetch
|
||||
sys.modules['charmhelpers.cli'] = charmhelpers.cli
|
||||
sys.modules['charmhelpers.contrib.hahelpers'] = (
|
||||
charmhelpers.contrib.hahelpers)
|
||||
sys.modules['charmhelpers.contrib.hahelpers.cluster'] = (
|
||||
charmhelpers.contrib.hahelpers.cluster)
|
||||
|
||||
# mock in the openstack releases so that the tests can run
|
||||
charmhelpers.contrib.openstack.utils.OPENSTACK_RELEASES = (
|
||||
'diablo',
|
||||
'essex',
|
||||
'folsom',
|
||||
'grizzly',
|
||||
'havana',
|
||||
'icehouse',
|
||||
'juno',
|
||||
'kilo',
|
||||
'liberty',
|
||||
'mitaka',
|
||||
'newton',
|
||||
'ocata',
|
||||
'pike',
|
||||
)
|
Loading…
Reference in New Issue
Block a user