Skip to content

Commit

Permalink
Improve platform mocking
Browse files Browse the repository at this point in the history
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: I3ca0e47cc8cd0bc8475c0c4b0ef8d013d52401ed
  • Loading branch information
ajkavanagh committed Oct 23, 2023
1 parent 8045849 commit 955f7e7
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions unit_tests/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
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'))
_hooks = os.path.abspath(os.path.join(_path, '../hooks'))
Expand All @@ -29,3 +31,12 @@ def _add_path(path):
_add_path(_actions)
_add_path(_hooks)
_add_path(_lib)

# 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()

0 comments on commit 955f7e7

Please sign in to comment.