From 886fac87ebf4dd02c1aae7ecafa0a85c0eeedfe0 Mon Sep 17 00:00:00 2001 From: Alex Kavanagh Date: Tue, 24 Oct 2023 20:12:50 +0100 Subject: [PATCH] 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. Change-Id: Ic35061597a52dda749f2e6e3f3d255f831c82a06 --- unit_tests/__init__.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/unit_tests/__init__.py b/unit_tests/__init__.py index e24a5b3..21a9870 100644 --- a/unit_tests/__init__.py +++ b/unit_tests/__init__.py @@ -1,5 +1,6 @@ import os import sys +from unittest.mock import patch _path = os.path.dirname(os.path.realpath(__file__)) _actions = os.path.abspath(os.path.join(_path, '../actions')) @@ -17,3 +18,16 @@ _add_path(_actions) _add_path(_hooks) _add_path(_charmhelpers) _add_path(_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. +patch( + 'charmhelpers.osplatform.get_platform', return_value='ubuntu' +).start() +patch( + 'charmhelpers.core.host.lsb_release', + return_value={ + 'DISTRIB_CODENAME': 'jammy' + }).start()