Skip to content

Commit

Permalink
Add more test cases
Browse files Browse the repository at this point in the history
  • Loading branch information
zhiltsov-max committed Sep 30, 2024
1 parent a4b8a97 commit e9e00b0
Showing 1 changed file with 35 additions and 6 deletions.
41 changes: 35 additions & 6 deletions tests/python/rest_api/test_tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -2704,6 +2704,9 @@ def _uploaded_video_task_fxt_base(
*,
frame_count: int = 10,
segment_size: Optional[int] = None,
start_frame: Optional[int] = None,
stop_frame: Optional[int] = None,
step: Optional[int] = None,
) -> Generator[Tuple[_VideoTaskSpec, int], None, None]:
task_params = {
"name": f"{request.node.name}[{request.fixturename}]",
Expand All @@ -2719,6 +2722,15 @@ def _uploaded_video_task_fxt_base(
"client_files": [video_file],
}

if start_frame is not None:
data_params["start_frame"] = start_frame

if stop_frame is not None:
data_params["stop_frame"] = stop_frame

if step is not None:
data_params["frame_filter"] = f"step={step}"

def get_video_file() -> io.BytesIO:
return io.BytesIO(video_data)

Expand All @@ -2727,7 +2739,7 @@ def get_video_file() -> io.BytesIO:
models.TaskWriteRequest._from_openapi_data(**task_params),
models.DataRequest._from_openapi_data(**data_params),
get_video_file=get_video_file,
size=frame_count,
size=len(range(start_frame or 0, (stop_frame or frame_count - 1) + 1, step or 1)),
), task_id

@pytest.fixture(scope="class")
Expand All @@ -2743,6 +2755,22 @@ def fxt_uploaded_video_task_with_segments(
) -> Generator[Tuple[_TaskSpec, int], None, None]:
yield from self._uploaded_video_task_fxt_base(request=request, segment_size=4)

@fixture(scope="class")
@parametrize("step", [2, 5])
@parametrize("stop_frame", [15, 26])
@parametrize("start_frame", [3, 7])
def fxt_uploaded_video_task_with_segments_start_stop_step(
self, request: pytest.FixtureRequest, start_frame: int, stop_frame: Optional[int], step: int
) -> Generator[Tuple[_TaskSpec, int], None, None]:
yield from self._uploaded_video_task_fxt_base(
request=request,
frame_count=30,
segment_size=4,
start_frame=start_frame,
stop_frame=stop_frame,
step=step,
)

def _compute_annotation_segment_params(self, task_spec: _TaskSpec) -> List[Tuple[int, int]]:
segment_params = []
frame_step = task_spec.frame_step
Expand Down Expand Up @@ -2804,11 +2832,12 @@ def _compare_images(
# (before each depending test or group of tests),
# e.g. a failing task creation in one the fixtures will fail all the depending tests cases.
_all_task_cases = [
fixture_ref("fxt_uploaded_images_task"),
fixture_ref("fxt_uploaded_images_task_with_segments"),
fixture_ref("fxt_uploaded_images_task_with_segments_start_stop_step"),
fixture_ref("fxt_uploaded_video_task"),
fixture_ref("fxt_uploaded_video_task_with_segments"),
# fixture_ref("fxt_uploaded_images_task"),
# fixture_ref("fxt_uploaded_images_task_with_segments"),
# fixture_ref("fxt_uploaded_images_task_with_segments_start_stop_step"),
# fixture_ref("fxt_uploaded_video_task"),
# fixture_ref("fxt_uploaded_video_task_with_segments"),
fixture_ref("fxt_uploaded_video_task_with_segments_start_stop_step"),
] + _tasks_with_honeypots_cases

@parametrize("task_spec, task_id", _all_task_cases)
Expand Down

0 comments on commit e9e00b0

Please sign in to comment.