def test_create_namespaced_job_fails_outside_cluster(job_spec_file): environment = KubernetesJobEnvironment(job_spec_file=job_spec_file) storage = Docker(registry_url="test1", image_name="test2", image_tag="test3") with pytest.raises(EnvironmentError): with set_temporary_config({"cloud.auth_token": "test"}): environment.execute(Flow("test", storage=storage))
def test_execute_storage_missing_fields(): with tempfile.TemporaryDirectory() as directory: with open(os.path.join(directory, "job.yaml"), "w+") as file: file.write("job") environment = KubernetesJobEnvironment( job_spec_file=os.path.join(directory, "job.yaml")) with pytest.raises(ValueError): environment.execute(storage=Docker(), flow_location="")
def test_execute_improper_storage(): with tempfile.TemporaryDirectory() as directory: with open(os.path.join(directory, "job.yaml"), "w+") as file: file.write("job") environment = KubernetesJobEnvironment( job_spec_file=os.path.join(directory, "job.yaml")) with pytest.raises(TypeError): environment.execute(storage=Local(), flow_location="")
def test_create_namespaced_job_fails_outside_cluster(): with tempfile.TemporaryDirectory() as directory: with open(os.path.join(directory, "job.yaml"), "w+") as file: file.write("job") environment = KubernetesJobEnvironment( job_spec_file=os.path.join(directory, "job.yaml")) storage = Docker(registry_url="test1", image_name="test2", image_tag="test3") with pytest.raises(EnvironmentError): with set_temporary_config({"cloud.auth_token": "test"}): environment.execute(Flow("test", storage=storage))
def test_execute(monkeypatch): file_path = os.path.dirname(prefect.environments.execution.dask.k8s.__file__) environment = KubernetesJobEnvironment(os.path.join(file_path, "job.yaml")) config = MagicMock() monkeypatch.setattr("kubernetes.config", config) batchv1 = MagicMock() monkeypatch.setattr( "kubernetes.client", MagicMock(BatchV1Api=MagicMock(return_value=batchv1)) ) storage = Docker(registry_url="test1", image_name="test2", image_tag="test3") with set_temporary_config({"cloud.auth_token": "test"}): environment.execute(Flow("test", storage=storage)) assert ( batchv1.create_namespaced_job.call_args[1]["body"]["apiVersion"] == "batch/v1" )
def test_execute(monkeypatch): with tempfile.TemporaryDirectory() as directory: with open(os.path.join(directory, "job.yaml"), "w+") as file: file.write("job") environment = KubernetesJobEnvironment( job_spec_file=os.path.join(directory, "job.yaml") ) storage = Docker(registry_url="test1", image_name="test2", image_tag="test3") create_flow_run = MagicMock() monkeypatch.setattr( "prefect.environments.KubernetesJobEnvironment.create_flow_run_job", create_flow_run, ) environment.execute(storage=storage, flow_location="") assert create_flow_run.call_args[1]["docker_name"] == "test1/test2:test3"
def test_execute_storage_missing_fields(job_spec_file): environment = KubernetesJobEnvironment(job_spec_file=job_spec_file) with pytest.raises(ValueError): environment.execute(Flow("test", storage=Docker()))