From 80dab0abd30e49953f5d34fc3779d86806c39076 Mon Sep 17 00:00:00 2001 From: Alex Kavanagh Date: Tue, 24 Oct 2023 18:36:33 +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: I3dd34ddb38141ec89896b1ce2d9dc6849f4faaa8 --- unit_tests/__init__.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/unit_tests/__init__.py b/unit_tests/__init__.py index 973e4e6d..57f6ad24 100644 --- a/unit_tests/__init__.py +++ b/unit_tests/__init__.py @@ -1,6 +1,7 @@ import os import sys +from unittest.mock import patch _path = os.path.dirname(os.path.realpath(__file__)) _hooks = os.path.abspath(os.path.join(_path, '../hooks')) @@ -16,3 +17,15 @@ def _add_path(path): _add_path(_hooks) _add_path(_actions) _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()