mirror of
https://github.com/ansible-collections/kubernetes.core.git
synced 2026-05-07 05:22:39 +00:00
[backport/2.3] Remove omit from template resource (#432)
Depends-On: #446
Remove omit value from template args
SUMMARY
While defining resource using template parameter, the code does not remove the omit value if any.
This fix adds a post process to remove any omit value from the resource definition.
fixes #431
ISSUE TYPE
Bugfix Pull Request
COMPONENT NAME
k8s*
Reviewed-by: Mike Graves mgraves@redhat.com
Reviewed-by: Abhijeet Kasurde
(cherry picked from commit 882e672)
This commit is contained in:
104
tests/unit/action/test_remove_omit.py
Normal file
104
tests/unit/action/test_remove_omit.py
Normal file
@@ -0,0 +1,104 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright: (c) 2022, Ansible Project
|
||||
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
|
||||
from __future__ import absolute_import, division, print_function
|
||||
|
||||
__metaclass__ = type
|
||||
|
||||
from datetime import datetime
|
||||
from ansible_collections.kubernetes.core.plugins.action.k8s_info import RemoveOmit
|
||||
|
||||
|
||||
def get_omit_token():
|
||||
return "__omit_place_holder__%s" % datetime.now().strftime("%Y%m%d%H%M%S")
|
||||
|
||||
|
||||
def test_remove_omit_from_str():
|
||||
omit_token = get_omit_token()
|
||||
src = """
|
||||
project: ansible
|
||||
collection: {omit}
|
||||
""".format(
|
||||
omit=omit_token
|
||||
)
|
||||
result = RemoveOmit(src, omit_value=omit_token).output()
|
||||
assert len(result) == 1
|
||||
assert result[0] == dict(project="ansible")
|
||||
|
||||
|
||||
def test_remove_omit_from_list():
|
||||
omit_token = get_omit_token()
|
||||
src = """
|
||||
items:
|
||||
- {omit}
|
||||
""".format(
|
||||
omit=omit_token
|
||||
)
|
||||
result = RemoveOmit(src, omit_value=omit_token).output()
|
||||
assert len(result) == 1
|
||||
assert result[0] == dict(items=[])
|
||||
|
||||
|
||||
def test_remove_omit_from_list_of_dict():
|
||||
omit_token = get_omit_token()
|
||||
src = """
|
||||
items:
|
||||
- owner: ansible
|
||||
team: {omit}
|
||||
- simple_list_item
|
||||
""".format(
|
||||
omit=omit_token
|
||||
)
|
||||
result = RemoveOmit(src, omit_value=omit_token).output()
|
||||
assert len(result) == 1
|
||||
assert result[0] == dict(items=[dict(owner="ansible"), "simple_list_item"])
|
||||
|
||||
|
||||
def test_remove_omit_combined():
|
||||
omit_token = get_omit_token()
|
||||
src = """
|
||||
items:
|
||||
- {omit}
|
||||
- list_item_a
|
||||
- list_item_b
|
||||
parent:
|
||||
child:
|
||||
subchilda: {omit}
|
||||
subchildb:
|
||||
name: {omit}
|
||||
age: 3
|
||||
""".format(
|
||||
omit=omit_token
|
||||
)
|
||||
result = RemoveOmit(src, omit_value=omit_token).output()
|
||||
assert len(result) == 1
|
||||
assert result[0] == dict(
|
||||
items=["list_item_a", "list_item_b"],
|
||||
parent=dict(child=dict(subchildb=dict(age=3))),
|
||||
)
|
||||
|
||||
|
||||
def test_remove_omit_mutiple_documents():
|
||||
omit_token = get_omit_token()
|
||||
src = [
|
||||
"""
|
||||
project: ansible
|
||||
collection: {omit}
|
||||
""".format(
|
||||
omit=omit_token
|
||||
),
|
||||
"---",
|
||||
"""
|
||||
project: kubernetes
|
||||
environment: production
|
||||
collection: {omit}""".format(
|
||||
omit=omit_token
|
||||
),
|
||||
]
|
||||
src = "\n".join(src)
|
||||
print(src)
|
||||
result = RemoveOmit(src, omit_value=omit_token).output()
|
||||
assert len(result) == 2
|
||||
assert result[0] == dict(project="ansible")
|
||||
assert result[1] == dict(project="kubernetes", environment="production")
|
||||
Reference in New Issue
Block a user