mirror of https://github.com/ansible/ansible.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
2.0 KiB
Python
52 lines
2.0 KiB
Python
import json
|
|
import pytest
|
|
|
|
from ansible.module_utils import kubevirt as mymodule
|
|
|
|
|
|
def test_simple_merge_dicts():
|
|
dict1 = {'labels': {'label1': 'value'}}
|
|
dict2 = {'labels': {'label2': 'value'}}
|
|
dict3 = json.dumps({'labels': {'label1': 'value', 'label2': 'value'}}, sort_keys=True)
|
|
assert dict3 == json.dumps(dict(mymodule.KubeVirtRawModule.merge_dicts(dict1, dict2)), sort_keys=True)
|
|
|
|
|
|
def test_simple_multi_merge_dicts():
|
|
dict1 = {'labels': {'label1': 'value', 'label3': 'value'}}
|
|
dict2 = {'labels': {'label2': 'value'}}
|
|
dict3 = json.dumps({'labels': {'label1': 'value', 'label2': 'value', 'label3': 'value'}}, sort_keys=True)
|
|
assert dict3 == json.dumps(dict(mymodule.KubeVirtRawModule.merge_dicts(dict1, dict2)), sort_keys=True)
|
|
|
|
|
|
def test_double_nested_merge_dicts():
|
|
dict1 = {'metadata': {'labels': {'label1': 'value', 'label3': 'value'}}}
|
|
dict2 = {'metadata': {'labels': {'label2': 'value'}}}
|
|
dict3 = json.dumps({'metadata': {'labels': {'label1': 'value', 'label2': 'value', 'label3': 'value'}}}, sort_keys=True)
|
|
assert dict3 == json.dumps(dict(mymodule.KubeVirtRawModule.merge_dicts(dict1, dict2)), sort_keys=True)
|
|
|
|
|
|
@pytest.mark.parametrize("lval, operations, rval, result", [
|
|
('v1', ['<', '<='], 'v2', True),
|
|
('v1', ['>', '>=', '=='], 'v2', False),
|
|
('v1', ['>'], 'v1alpha1', True),
|
|
('v1', ['==', '<', '<='], 'v1alpha1', False),
|
|
('v1beta5', ['==', '<=', '>='], 'v1beta5', True),
|
|
('v1beta5', ['<', '>', '!='], 'v1beta5', False),
|
|
|
|
])
|
|
def test_kubeapiversion_comparisons(lval, operations, rval, result):
|
|
KubeAPIVersion = mymodule.KubeAPIVersion
|
|
for op in operations:
|
|
test = '(KubeAPIVersion("{0}") {1} KubeAPIVersion("{2}")) == {3}'.format(lval, op, rval, result)
|
|
assert eval(test)
|
|
|
|
|
|
@pytest.mark.parametrize("ver", ('nope', 'v1delta7', '1.5', 'v1beta', 'v'))
|
|
def test_kubeapiversion_unsupported_versions(ver):
|
|
threw = False
|
|
try:
|
|
mymodule.KubeAPIVersion(ver)
|
|
except ValueError:
|
|
threw = True
|
|
assert threw
|