Improve platform mocking
Patch out charmhelpers.osplatform.get_platform() and charmhelpers.core.host.lsb_release() globally in the unit tests to insulate the unit tests from the platform that the unit tests are being run on. Also, add mock for `charmhelpers.contrib.openstack.context.is_ipv6_disabled` in the `HAProxyContextTests.test_ctxt` unit test. The charmhelpers function `is_ipv6_disabled` calls `sysctl` and this doesn't exist on Debian container images. This fixes the following unit test failure: ``` FileNotFoundError: [Errno 2] No such file or directory: 'sysctl' ``` Signed-off-by: Ionut Balutoiu <ibalutoiu@cloudbasesolutions.com> Co-authored-by: Alex Kavanagh <alex.kavanagh@canonical.com> Change-Id: I60bc9550a83eb342e78d3c1916d98bfaa8035572
This commit is contained in:
parent
976fc4ae84
commit
b24a35713a
@ -13,8 +13,21 @@
|
||||
# limitations under the License.
|
||||
|
||||
import sys
|
||||
from unittest import mock
|
||||
|
||||
sys.path.append('actions')
|
||||
sys.path.append('hooks')
|
||||
sys.path.append('lib')
|
||||
sys.path.append('unit_tests')
|
||||
|
||||
# Patch out lsb_release() and get_platform() as unit tests should be fully
|
||||
# insulated from the underlying platform. Unit tests assume that the system is
|
||||
# ubuntu jammy.
|
||||
mock.patch(
|
||||
'charmhelpers.osplatform.get_platform', return_value='ubuntu'
|
||||
).start()
|
||||
mock.patch(
|
||||
'charmhelpers.core.host.lsb_release',
|
||||
return_value={
|
||||
'DISTRIB_CODENAME': 'jammy'
|
||||
}).start()
|
||||
|
@ -47,6 +47,7 @@ class HAProxyContextTests(CharmTestCase):
|
||||
self.arch.return_value = 'amd64'
|
||||
|
||||
@patch('ceph_radosgw_context.https')
|
||||
@patch('charmhelpers.contrib.openstack.context.is_ipv6_disabled')
|
||||
@patch('charmhelpers.contrib.openstack.context.get_relation_ip')
|
||||
@patch('charmhelpers.contrib.openstack.context.mkdir')
|
||||
@patch('charmhelpers.contrib.openstack.context.local_unit')
|
||||
@ -56,7 +57,7 @@ class HAProxyContextTests(CharmTestCase):
|
||||
@patch('charmhelpers.contrib.hahelpers.cluster.relation_ids')
|
||||
def test_ctxt(self, _harelation_ids, _ctxtrelation_ids, _haconfig,
|
||||
_ctxtconfig, _local_unit, _mkdir, _get_relation_ip,
|
||||
_mock_https):
|
||||
_is_ipv6_disabled, _mock_https):
|
||||
_mock_https.return_value = False
|
||||
_get_relation_ip.return_value = '10.0.0.10'
|
||||
_ctxtconfig.side_effect = self.test_config.get
|
||||
@ -74,6 +75,7 @@ class HAProxyContextTests(CharmTestCase):
|
||||
'https': False
|
||||
}
|
||||
self.assertEqual(expect, haproxy_context())
|
||||
_is_ipv6_disabled.assert_called_once_with()
|
||||
|
||||
|
||||
class MonContextTest(CharmTestCase):
|
||||
|
Loading…
Reference in New Issue
Block a user