43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
from __future__ import annotations
|
|
|
|
from ariadne.k8s.jobs import JobSpawner
|
|
|
|
|
|
def test_job_from_cronjob_applies_env_and_ttl() -> None:
|
|
cronjob = {
|
|
"spec": {
|
|
"jobTemplate": {
|
|
"spec": {
|
|
"template": {
|
|
"spec": {
|
|
"containers": [
|
|
{"name": "sync", "env": [{"name": "FOO", "value": "1"}]}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
spawner = JobSpawner("ns", "cron")
|
|
job = spawner._job_from_cronjob(
|
|
cronjob,
|
|
"User@Name",
|
|
env_overrides=[{"name": "FOO", "value": "2"}, {"name": "BAR", "value": "3"}],
|
|
job_ttl_seconds=3600,
|
|
)
|
|
|
|
assert job["spec"]["ttlSecondsAfterFinished"] == 3600
|
|
labels = job["metadata"]["labels"]
|
|
assert labels["atlas.bstein.dev/trigger"] == "ariadne"
|
|
|
|
env = job["spec"]["template"]["spec"]["containers"][0]["env"]
|
|
env_map = {item["name"]: item["value"] for item in env}
|
|
assert env_map["FOO"] == "2"
|
|
assert env_map["BAR"] == "3"
|
|
|
|
|
|
def test_safe_name_fragment() -> None:
|
|
assert JobSpawner._safe_name_fragment("User@Name") == "user-name"
|