mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-01 04:30:22 -07:00
unit test helper: big revamp (#8894)
* initial commit * multiple changes: - TestCaseContext fixture no longer need to autouse=True - Helper.from_module() allows extra param to specify yaml file - test_django_check: adjusted .py and .yaml * set fixtures per testcase * set fixtures per testcase * rollback to original state * patch_ansible_module fixture - now it works not only in parametrized functions but also directly with args * tests/unit/plugins/modules/helper.py - improved encapsulation, class Helper no longer knows details about test cases - test functions no longer parametrized, that allows using test case fixtures per test function - renamed 'context' to 'mock' * enable Helper.from_list(), better param name 'ansible_module' * adjusted test fiels to new helper * remove unnecessary .license file * fix bracket * fix reference name * Update tests/unit/plugins/modules/helper.py Co-authored-by: Felix Fontein <felix@fontein.de> * revert to parametrized test func instead of multiple funcs --------- Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
parent
fe18b05f08
commit
8ef77d8664
27 changed files with 611 additions and 478 deletions
|
@ -6,8 +6,10 @@
|
|||
from __future__ import (absolute_import, division, print_function)
|
||||
__metaclass__ = type
|
||||
|
||||
from .helper import Helper, ModuleTestCase, RunCmdCall
|
||||
import sys
|
||||
|
||||
from ansible_collections.community.general.plugins.modules import snap
|
||||
from .helper import Helper, RunCommandMock # pylint: disable=unused-import
|
||||
|
||||
|
||||
issue_6803_status_out = """Name Version Rev Tracking Publisher Notes
|
||||
|
@ -375,100 +377,102 @@ issue_6803_kubectl_out = (
|
|||
)
|
||||
|
||||
TEST_CASES = [
|
||||
ModuleTestCase(
|
||||
dict(
|
||||
id="simple case",
|
||||
input={"name": ["hello-world"]},
|
||||
output=dict(changed=True, snaps_installed=["hello-world"]),
|
||||
flags={},
|
||||
run_command_calls=[
|
||||
RunCmdCall(
|
||||
command=['/testbin/snap', 'info', 'hello-world'],
|
||||
environ={'environ_update': {'LANGUAGE': 'C', 'LC_ALL': 'C'}, 'check_rc': False},
|
||||
rc=0,
|
||||
out='name: hello-world\n',
|
||||
err="",
|
||||
),
|
||||
RunCmdCall(
|
||||
command=['/testbin/snap', 'list'],
|
||||
environ={'environ_update': {'LANGUAGE': 'C', 'LC_ALL': 'C'}, 'check_rc': False},
|
||||
rc=0,
|
||||
out="",
|
||||
err="",
|
||||
),
|
||||
RunCmdCall(
|
||||
command=['/testbin/snap', 'install', 'hello-world'],
|
||||
environ={'environ_update': {'LANGUAGE': 'C', 'LC_ALL': 'C'}, 'check_rc': False},
|
||||
rc=0,
|
||||
out="hello-world (12345/stable) v12345 from Canonical** installed\n",
|
||||
err="",
|
||||
),
|
||||
RunCmdCall(
|
||||
command=['/testbin/snap', 'list'],
|
||||
environ={'environ_update': {'LANGUAGE': 'C', 'LC_ALL': 'C'}, 'check_rc': False},
|
||||
rc=0,
|
||||
out=(
|
||||
"Name Version Rev Tracking Publisher Notes"
|
||||
"core20 20220826 1623 latest/stable canonical** base"
|
||||
"lxd 5.6-794016a 23680 latest/stable/… canonical** -"
|
||||
"hello-world 5.6-794016a 23680 latest/stable/… canonical** -"
|
||||
"snapd 2.57.4 17336 latest/stable canonical** snapd"
|
||||
""),
|
||||
err="",
|
||||
),
|
||||
]
|
||||
mocks=dict(
|
||||
run_command=[
|
||||
dict(
|
||||
command=['/testbin/snap', 'info', 'hello-world'],
|
||||
environ={'environ_update': {'LANGUAGE': 'C', 'LC_ALL': 'C'}, 'check_rc': False},
|
||||
rc=0,
|
||||
out='name: hello-world\n',
|
||||
err="",
|
||||
),
|
||||
dict(
|
||||
command=['/testbin/snap', 'list'],
|
||||
environ={'environ_update': {'LANGUAGE': 'C', 'LC_ALL': 'C'}, 'check_rc': False},
|
||||
rc=0,
|
||||
out="",
|
||||
err="",
|
||||
),
|
||||
dict(
|
||||
command=['/testbin/snap', 'install', 'hello-world'],
|
||||
environ={'environ_update': {'LANGUAGE': 'C', 'LC_ALL': 'C'}, 'check_rc': False},
|
||||
rc=0,
|
||||
out="hello-world (12345/stable) v12345 from Canonical** installed\n",
|
||||
err="",
|
||||
),
|
||||
dict(
|
||||
command=['/testbin/snap', 'list'],
|
||||
environ={'environ_update': {'LANGUAGE': 'C', 'LC_ALL': 'C'}, 'check_rc': False},
|
||||
rc=0,
|
||||
out=(
|
||||
"Name Version Rev Tracking Publisher Notes"
|
||||
"core20 20220826 1623 latest/stable canonical** base"
|
||||
"lxd 5.6-794016a 23680 latest/stable/… canonical** -"
|
||||
"hello-world 5.6-794016a 23680 latest/stable/… canonical** -"
|
||||
"snapd 2.57.4 17336 latest/stable canonical** snapd"
|
||||
""),
|
||||
err="",
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
ModuleTestCase(
|
||||
dict(
|
||||
id="issue_6803",
|
||||
input={"name": ["microk8s", "kubectl"], "classic": True},
|
||||
output=dict(changed=True, snaps_installed=["microk8s", "kubectl"]),
|
||||
flags={},
|
||||
run_command_calls=[
|
||||
RunCmdCall(
|
||||
command=['/testbin/snap', 'info', 'microk8s', 'kubectl'],
|
||||
environ={'environ_update': {'LANGUAGE': 'C', 'LC_ALL': 'C'}, 'check_rc': False},
|
||||
rc=0,
|
||||
out='name: microk8s\n---\nname: kubectl\n',
|
||||
err="",
|
||||
),
|
||||
RunCmdCall(
|
||||
command=['/testbin/snap', 'list'],
|
||||
environ={'environ_update': {'LANGUAGE': 'C', 'LC_ALL': 'C'}, 'check_rc': False},
|
||||
rc=0,
|
||||
out=issue_6803_status_out,
|
||||
err="",
|
||||
),
|
||||
RunCmdCall(
|
||||
command=['/testbin/snap', 'install', '--classic', 'microk8s'],
|
||||
environ={'environ_update': {'LANGUAGE': 'C', 'LC_ALL': 'C'}, 'check_rc': False},
|
||||
rc=0,
|
||||
out=issue_6803_microk8s_out,
|
||||
err="",
|
||||
),
|
||||
RunCmdCall(
|
||||
command=['/testbin/snap', 'install', '--classic', 'kubectl'],
|
||||
environ={'environ_update': {'LANGUAGE': 'C', 'LC_ALL': 'C'}, 'check_rc': False},
|
||||
rc=0,
|
||||
out=issue_6803_kubectl_out,
|
||||
err="",
|
||||
),
|
||||
RunCmdCall(
|
||||
command=['/testbin/snap', 'list'],
|
||||
environ={'environ_update': {'LANGUAGE': 'C', 'LC_ALL': 'C'}, 'check_rc': False},
|
||||
rc=0,
|
||||
out=(
|
||||
"Name Version Rev Tracking Publisher Notes"
|
||||
"core20 20220826 1623 latest/stable canonical** base"
|
||||
"lxd 5.6-794016a 23680 latest/stable/… canonical** -"
|
||||
"microk8s 5.6-794016a 23680 latest/stable/… canonical** -"
|
||||
"kubectl 5.6-794016a 23680 latest/stable/… canonical** -"
|
||||
"snapd 2.57.4 17336 latest/stable canonical** snapd"
|
||||
""),
|
||||
err="",
|
||||
),
|
||||
]
|
||||
mocks=dict(
|
||||
run_command=[
|
||||
dict(
|
||||
command=['/testbin/snap', 'info', 'microk8s', 'kubectl'],
|
||||
environ={'environ_update': {'LANGUAGE': 'C', 'LC_ALL': 'C'}, 'check_rc': False},
|
||||
rc=0,
|
||||
out='name: microk8s\n---\nname: kubectl\n',
|
||||
err="",
|
||||
),
|
||||
dict(
|
||||
command=['/testbin/snap', 'list'],
|
||||
environ={'environ_update': {'LANGUAGE': 'C', 'LC_ALL': 'C'}, 'check_rc': False},
|
||||
rc=0,
|
||||
out=issue_6803_status_out,
|
||||
err="",
|
||||
),
|
||||
dict(
|
||||
command=['/testbin/snap', 'install', '--classic', 'microk8s'],
|
||||
environ={'environ_update': {'LANGUAGE': 'C', 'LC_ALL': 'C'}, 'check_rc': False},
|
||||
rc=0,
|
||||
out=issue_6803_microk8s_out,
|
||||
err="",
|
||||
),
|
||||
dict(
|
||||
command=['/testbin/snap', 'install', '--classic', 'kubectl'],
|
||||
environ={'environ_update': {'LANGUAGE': 'C', 'LC_ALL': 'C'}, 'check_rc': False},
|
||||
rc=0,
|
||||
out=issue_6803_kubectl_out,
|
||||
err="",
|
||||
),
|
||||
dict(
|
||||
command=['/testbin/snap', 'list'],
|
||||
environ={'environ_update': {'LANGUAGE': 'C', 'LC_ALL': 'C'}, 'check_rc': False},
|
||||
rc=0,
|
||||
out=(
|
||||
"Name Version Rev Tracking Publisher Notes"
|
||||
"core20 20220826 1623 latest/stable canonical** base"
|
||||
"lxd 5.6-794016a 23680 latest/stable/… canonical** -"
|
||||
"microk8s 5.6-794016a 23680 latest/stable/… canonical** -"
|
||||
"kubectl 5.6-794016a 23680 latest/stable/… canonical** -"
|
||||
"snapd 2.57.4 17336 latest/stable canonical** snapd"
|
||||
""),
|
||||
err="",
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
]
|
||||
|
||||
helper = Helper.from_list(snap.main, TEST_CASES)
|
||||
patch_bin = helper.cmd_fixture
|
||||
test_module = helper.test_module
|
||||
Helper.from_list(sys.modules[__name__], snap, TEST_CASES)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue