Skip to content

Commit

Permalink
add annotation when suspend cronjob - unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
aprucolimartins committed Mar 8, 2024
1 parent c90ce2c commit c67c54d
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,16 @@ list_cronjobs:
namespace: default
spec:
suspend: false
metadata:
annotations:
metalk8s.scality.com/suspend_mark: null
- name: my_cronjob2
namespace: default
spec:
suspend: true
metadata:
annotations:
metalk8s.scality.com/suspend_mark: marked
all_namespaces: true
namespace: default
result: *_list_objects_default
Expand Down Expand Up @@ -76,6 +82,20 @@ list_cronjobs:
spec:
suspend: false

# marked
- list_objects: *_list_objects_default
all_namespaces: true
suspended: true
mark: marked
result:
- name: my_cronjob2
namespace: default
spec:
suspend: true
metadata:
annotations:
metalk8s.scality.com/suspend_mark: marked

# No cronjobs
- raises: True
suspended: true
Expand Down Expand Up @@ -121,21 +141,36 @@ _set_cronjob_suspend:
- name: my_cronjob
namespace: default
suspend: false
mark: null
spec_suspend: true
mark_suspend: null
result: True

# my-namespace set to true
- name: my_cronjob
namespace: my_namespace
suspend: true
mark: null
spec_suspend: false
mark_suspend: null
result: True

# mark
- name: my_cronjob
namespace: my_namespace
suspend: true
mark: marked
spec_suspend: false
mark_suspend: marked
result: True

# Already in the wanted state
- name: my_cronjob
namespace: my_namespace
suspend: true
mark: null
spec_suspend: true
mark_suspend: null
result: True

suspend_cronjob:
Expand Down
26 changes: 19 additions & 7 deletions salt/tests/unit/modules/test_metalk8s_kubernetes_cronjob.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ def test_list_cronjobs(
list_objects=None,
namespace="default",
suspended=None,
mark=None,
all_namespaces=False,
raises=False,
):
Expand All @@ -64,6 +65,7 @@ def test_list_cronjobs(
result,
metalk8s_kubernetes_cronjob.list_cronjobs,
suspended=suspended,
mark=mark,
all_namespaces=all_namespaces,
namespace=namespace,
)
Expand All @@ -72,6 +74,7 @@ def test_list_cronjobs(
self.assertEqual(
metalk8s_kubernetes_cronjob.list_cronjobs(
suspended=suspended,
mark=mark,
all_namespaces=all_namespaces,
namespace=namespace,
),
Expand Down Expand Up @@ -113,14 +116,19 @@ def test__set_cronjob_suspend(
name,
namespace,
suspend,
mark,
spec_suspend,
mark_suspend,
):
mock_get_object = MagicMock(
return_value={
"name": name,
"namespace": namespace,
"spec": {"suspend": spec_suspend},
"metadata": {"uid": "1234"},
"metadata": {
"uid": "1234",
"annotations": {"metalk8s.scality.com/suspend_mark": mark_suspend},
},
}
)
mock_update_object = MagicMock(return_value=None)
Expand All @@ -135,17 +143,17 @@ def test__set_cronjob_suspend(

self.assertEqual(
metalk8s_kubernetes_cronjob._set_cronjob_suspend(
name, namespace, suspend
name,
namespace,
suspend,
mark,
),
result,
)

@utils.parameterized_from_cases(YAML_TESTS_CASES["suspend_cronjob"])
def test_suspend_cronjob(
self,
result,
name="my_cronjob",
namespace="default",
self, result, name="my_cronjob", namespace="default", mark=None
):
mock__set_cronjob_suspend = MagicMock(return_value=True)

Expand All @@ -156,7 +164,8 @@ def test_suspend_cronjob(
):

self.assertEqual(
metalk8s_kubernetes_cronjob.suspend_cronjob(name, namespace), result
metalk8s_kubernetes_cronjob.suspend_cronjob(name, namespace, mark),
result,
)

@utils.parameterized_from_cases(YAML_TESTS_CASES["activate_cronjob"])
Expand Down Expand Up @@ -211,6 +220,7 @@ def test_stop_jobs(
result,
cronjob_name,
namespace,
mark=None,
wait=False,
timeout_seconds=60,
get_jobs=None,
Expand Down Expand Up @@ -247,6 +257,7 @@ def get_jobs_call(cronjob_name, namespace, **kwargs):
metalk8s_kubernetes_cronjob.stop_jobs,
cronjob_name,
namespace,
mark,
wait,
timeout_seconds,
)
Expand All @@ -255,6 +266,7 @@ def get_jobs_call(cronjob_name, namespace, **kwargs):
metalk8s_kubernetes_cronjob.stop_jobs(
cronjob_name,
namespace,
mark,
wait,
timeout_seconds,
),
Expand Down

0 comments on commit c67c54d

Please sign in to comment.