Skip to content

Commit 97f1195

Browse files
committed
added test to check new exception
1 parent c81caba commit 97f1195

File tree

1 file changed

+47
-3
lines changed

1 file changed

+47
-3
lines changed

services/dask-sidecar/tests/unit/test_computational_sidecar_tasks.py

Lines changed: 47 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,10 @@
2323
import pytest
2424
from common_library.json_serialization import json_dumps
2525
from dask_task_models_library.container_tasks.docker import DockerBasicAuth
26-
from dask_task_models_library.container_tasks.errors import ServiceRuntimeError
26+
from dask_task_models_library.container_tasks.errors import (
27+
ServiceInputsUseFileToKeyMapButReceivesZipDataError,
28+
ServiceRuntimeError,
29+
)
2730
from dask_task_models_library.container_tasks.events import TaskProgressEvent
2831
from dask_task_models_library.container_tasks.io import (
2932
FileUrl,
@@ -417,7 +420,9 @@ def sidecar_task(
417420
task_owner: TaskOwner,
418421
s3_settings: S3Settings,
419422
) -> Callable[..., ServiceExampleParam]:
420-
def _creator(command: list[str] | None = None) -> ServiceExampleParam:
423+
def _creator(
424+
command: list[str] | None = None, input_data: TaskInputData | None = None
425+
) -> ServiceExampleParam:
421426
return ServiceExampleParam(
422427
docker_basic_auth=DockerBasicAuth(
423428
server_address="docker.io", username="pytest", password=SecretStr("")
@@ -426,7 +431,7 @@ def _creator(command: list[str] | None = None) -> ServiceExampleParam:
426431
service_version="latest",
427432
command=command
428433
or ["/bin/bash", "-c", "echo 'hello I'm an empty ubuntu task!"],
429-
input_data=TaskInputData.model_validate({}),
434+
input_data=input_data or TaskInputData.model_validate({}),
430435
output_data_keys=TaskOutputDataSchema.model_validate({}),
431436
log_file_url=s3_remote_file_url(file_path="log.dat"),
432437
expected_output_data=TaskOutputData.model_validate({}),
@@ -456,6 +461,30 @@ def sleeper_task_unexpected_output(
456461
return sleeper_task
457462

458463

464+
@pytest.fixture()
465+
def task_with_file_to_key_map_in_input_data(
466+
sidecar_task: Callable[..., ServiceExampleParam],
467+
) -> ServiceExampleParam:
468+
"""This task has a file-to-key map in the input data but receives zip data instead"""
469+
return sidecar_task(
470+
command=["/bin/bash", "-c", "echo we create nothingness"],
471+
input_data=TaskInputData.model_validate(
472+
{
473+
"input_1": 23,
474+
"input_23": "a string input",
475+
"the_input_43": 15.0,
476+
"the_bool_input_54": False,
477+
"some_file_input_with_mapping": FileUrl(
478+
url=TypeAdapter(AnyUrl).validate_python(
479+
"s3://myserver/some_file_url.zip"
480+
),
481+
file_mapping="some_file_mapping",
482+
),
483+
}
484+
),
485+
)
486+
487+
459488
@pytest.fixture()
460489
def caplog_info_level(
461490
caplog: pytest.LogCaptureFixture,
@@ -809,6 +838,21 @@ def test_running_service_that_generates_unexpected_data_raises_exception(
809838
)
810839

811840

841+
@pytest.mark.parametrize(
842+
"integration_version, boot_mode", [("1.0.0", BootMode.CPU)], indirect=True
843+
)
844+
def test_running_service_with_incorrect_zip_data_that_uses_a_file_to_key_map_raises_exception(
845+
caplog_info_level: pytest.LogCaptureFixture,
846+
app_environment: EnvVarsDict,
847+
dask_subsystem_mock: dict[str, mock.Mock],
848+
task_with_file_to_key_map_in_input_data: ServiceExampleParam,
849+
):
850+
with pytest.raises(ServiceInputsUseFileToKeyMapButReceivesZipDataError):
851+
run_computational_sidecar(
852+
**task_with_file_to_key_map_in_input_data.sidecar_params(),
853+
)
854+
855+
812856
@pytest.mark.parametrize(
813857
"integration_version, boot_mode", [("1.0.0", BootMode.CPU)], indirect=True
814858
)

0 commit comments

Comments
 (0)