def test_kube_kwargs_value_is_replaced(self, kube_secret, api_client): task = ReadNamespacedDeployment(deployment_name="test", kube_kwargs={"test": "a"}) task.run(kube_kwargs={"test": "b"}) assert api_client.read_namespaced_deployment.call_args[1][ "test"] == "b"
def test_api_key_pulled_from_secret(self, monkeypatch): task = ReadNamespacedDeployment(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
def test_api_key_pulled_from_secret(self, monkeypatch): task = ReadNamespacedDeployment(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"}
def test_empty_kube_kwargs_value_is_updated(self, monkeypatch): task = ReadNamespacedDeployment(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.read_namespaced_deployment.call_args[1]["test"] == "a"
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 = ReadNamespacedDeployment( deployment_name="test", kube_kwargs={"test": "a"}, kubernetes_api_key_secret=None, ) task.run(kube_kwargs={"test": "b"}) assert config.load_incluster_config.called
def test_invalid_body_raises_error(self): task = ReadNamespacedDeployment() with pytest.raises(ValueError): task.run(deployment_name=None)
def test_empty_name_raises_error(self): task = ReadNamespacedDeployment() with pytest.raises(ValueError): task.run()