예제 #1
0
    def test_kube_kwargs_value_is_replaced(self, kube_secret, api_client):
        task = DeleteNamespacedDeployment(deployment_name="test",
                                          kube_kwargs={"test": "a"})

        task.run(kube_kwargs={"test": "b"})
        assert api_client.delete_namespaced_deployment.call_args[1][
            "test"] == "b"
예제 #2
0
    def test_api_key_pulled_from_secret(self, monkeypatch):
        task = DeleteNamespacedDeployment(deployment_name="test")
        client = MagicMock()
        monkeypatch.setattr("prefect.tasks.kubernetes.deployment.client", client)

        conf_call = MagicMock()
        monkeypatch.setattr(
            "prefect.tasks.kubernetes.deployment.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
예제 #3
0
    def test_api_key_pulled_from_secret(self, monkeypatch):
        task = DeleteNamespacedDeployment(deployment_name="test")
        client = MagicMock()
        monkeypatch.setattr("prefect.tasks.kubernetes.deployment.client",
                            client)

        api_key = {}
        conf_call = MagicMock()
        conf_call.return_value.api_key = api_key
        monkeypatch.setattr(
            "prefect.tasks.kubernetes.deployment.client.Configuration",
            conf_call)
        task.run()
        assert api_key == {"authorization": "test_key"}
예제 #4
0
    def test_empty_kube_kwargs_value_is_updated(self, monkeypatch):
        task = DeleteNamespacedDeployment(deployment_name="test")

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

        extensionsapi = MagicMock()
        monkeypatch.setattr(
            "prefect.tasks.kubernetes.deployment.client",
            MagicMock(ExtensionsV1beta1Api=MagicMock(return_value=extensionsapi)),
        )

        task.run(kube_kwargs={"test": "a"})
        assert extensionsapi.delete_namespaced_deployment.call_args[1]["test"] == "a"
예제 #5
0
 def test_filled_initialization(self):
     task = DeleteNamespacedDeployment(
         deployment_name="test",
         namespace="test",
         kube_kwargs={"test": "test"},
         kubernetes_api_key_secret="test",
     )
     assert task.deployment_name == "test"
     assert task.namespace == "test"
     assert task.kube_kwargs == {"test": "test"}
     assert task.kubernetes_api_key_secret == "test"
예제 #6
0
    def test_kube_config_in_cluster(self, monkeypatch):
        config = MagicMock()
        monkeypatch.setattr("prefect.tasks.kubernetes.deployment.config",
                            config)

        extensionsapi = MagicMock()
        monkeypatch.setattr(
            "prefect.tasks.kubernetes.deployment.client",
            MagicMock(ExtensionsV1beta1Api=MagicMock(
                return_value=extensionsapi)),
        )

        task = DeleteNamespacedDeployment(
            deployment_name="test",
            kube_kwargs={"test": "a"},
            kubernetes_api_key_secret=None,
        )

        task.run(kube_kwargs={"test": "b"})
        assert config.load_incluster_config.called
예제 #7
0
 def test_invalid_body_raises_error(self):
     task = DeleteNamespacedDeployment()
     with pytest.raises(ValueError):
         task.run(deployment_name=None)
예제 #8
0
 def test_empty_name_raises_error(self):
     task = DeleteNamespacedDeployment()
     with pytest.raises(ValueError):
         task.run()
예제 #9
0
 def test_empty_initialization(self):
     task = DeleteNamespacedDeployment()
     assert not task.deployment_name
     assert task.namespace == "default"
     assert task.kube_kwargs == {}
     assert task.kubernetes_api_key_secret == "KUBERNETES_API_KEY"