示例#1
0
文件: test_job.py 项目: zviri/prefect
    def test_body_value_is_replaced(self, kube_secret, api_client):
        task = CreateNamespacedJob(body={"test": "a"})

        task.run(body={"test": "b"})
        assert api_client.create_namespaced_job.call_args[1]["body"] == {
            "test": "b"
        }
示例#2
0
文件: test_job.py 项目: zviri/prefect
    def test_kube_kwargs_value_is_appended(self, kube_secret, api_client):
        task = CreateNamespacedJob(body={"test": "a"},
                                   kube_kwargs={"test": "a"})

        task.run(kube_kwargs={"a": "test"})
        assert api_client.create_namespaced_job.call_args[1]["a"] == "test"
        assert api_client.create_namespaced_job.call_args[1]["test"] == "a"
示例#3
0
    def test_api_key_pulled_from_secret(self, monkeypatch, kube_secret):
        task = CreateNamespacedJob(body={"test": "test"})
        client = MagicMock()
        monkeypatch.setattr("prefect.tasks.kubernetes.job.client", client)

        api_key = {}
        conf_call = MagicMock()
        conf_call.return_value.api_key = api_key
        monkeypatch.setattr(
            "prefect.tasks.kubernetes.job.client.Configuration", conf_call)
        task.run()
        assert api_key == {"authorization": "test_key"}
示例#4
0
    def test_api_key_pulled_from_secret(self, monkeypatch):
        task = CreateNamespacedJob(body={"test": "test"})
        client = MagicMock()
        monkeypatch.setattr("prefect.tasks.kubernetes.job.client", client)

        conf_call = MagicMock()
        monkeypatch.setattr(
            "prefect.tasks.kubernetes.job.client.Configuration", conf_call)
        with set_temporary_config({"cloud.use_local_secrets": True}):
            with prefect.context(secrets=dict(KUBERNETES_API_KEY="test_key")):
                task.run()
        assert conf_call.called
示例#5
0
    def test_empty_kube_kwargs_value_is_updated(self, monkeypatch):
        task = CreateNamespacedJob(body={"test": "a"})

        config = MagicMock()
        monkeypatch.setattr("prefect.tasks.kubernetes.job.config", config)

        batchapi = MagicMock()
        monkeypatch.setattr(
            "prefect.tasks.kubernetes.job.client",
            MagicMock(BatchV1Api=MagicMock(return_value=batchapi)),
        )

        task.run(kube_kwargs={"test": "a"})
        assert batchapi.create_namespaced_job.call_args[1]["test"] == "a"
示例#6
0
    def test_kube_config_in_cluster(self, monkeypatch):
        config = MagicMock()
        monkeypatch.setattr("prefect.tasks.kubernetes.job.config", config)

        batchapi = MagicMock()
        monkeypatch.setattr(
            "prefect.tasks.kubernetes.job.client",
            MagicMock(BatchV1Api=MagicMock(return_value=batchapi)),
        )

        task = CreateNamespacedJob(body={"test": "a"},
                                   kubernetes_api_key_secret=None)

        task.run(body={"test": "b"})
        assert config.load_incluster_config.called
示例#7
0
    def test_body_value_is_replaced(self, monkeypatch, kube_secret):
        task = CreateNamespacedJob(body={"test": "a"})

        config = MagicMock()
        monkeypatch.setattr("prefect.tasks.kubernetes.job.config", config)

        batchapi = MagicMock()
        monkeypatch.setattr(
            "prefect.tasks.kubernetes.job.client",
            MagicMock(BatchV1Api=MagicMock(return_value=batchapi)),
        )

        task.run(body={"test": "b"})
        assert batchapi.create_namespaced_job.call_args[1]["body"] == {
            "test": "b"
        }
示例#8
0
 def test_filled_initialization(self, kube_secret):
     task = CreateNamespacedJob(
         body={"test": "test"},
         namespace="test",
         kube_kwargs={"test": "test"},
         kubernetes_api_key_secret="test",
     )
     assert task.body == {"test": "test"}
     assert task.namespace == "test"
     assert task.kube_kwargs == {"test": "test"}
     assert task.kubernetes_api_key_secret == "test"
示例#9
0
 def test_invalid_body_raises_error(self, kube_secret):
     task = CreateNamespacedJob()
     with pytest.raises(ValueError):
         task.run(body=None)
示例#10
0
 def test_empty_body_raises_error(self, kube_secret):
     task = CreateNamespacedJob()
     with pytest.raises(ValueError):
         task.run()
示例#11
0
 def test_empty_initialization(self, kube_secret):
     task = CreateNamespacedJob()
     assert task.body == {}
     assert task.namespace == "default"
     assert task.kube_kwargs == {}
     assert task.kubernetes_api_key_secret == "KUBERNETES_API_KEY"
示例#12
0
import yaml

from prefect import Flow
from prefect.tasks.kubernetes import CreateNamespacedJob, DeleteNamespacedJob

with open("example_job.yaml") as file:
    job = yaml.safe_load(file)

job_task = CreateNamespacedJob()
delete_task = DeleteNamespacedJob()

with Flow("asdf") as f:
    t1 = job_task(body=job)
    t2 = delete_task(job_name="pi")

f.run()