From 30dc3dc647ed61de3354c9950ecb9c32fca4c866 Mon Sep 17 00:00:00 2001 From: Alex Kavanagh Date: Tue, 24 Oct 2023 20:31:36 +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: I7116d1232d19996e39665f5e6f15dae7b8e74118 --- unit_tests/__init__.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/unit_tests/__init__.py b/unit_tests/__init__.py index d8df6a5..16c08ce 100644 --- a/unit_tests/__init__.py +++ b/unit_tests/__init__.py @@ -14,6 +14,7 @@ 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')) @@ -31,3 +32,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()