def test_upload_segment(self, mocker): self.fusion_dataset_client._status.checkout(draft_number=1) segment_test = FusionSegment(name="test1") for i in range(5): temp_frame = Frame() temp_ulid = from_timestamp(10 * i + 10) temp_frame.frame_id = temp_ulid if i % 2 == 0: temp_frame["camera"] = Data(f"{i}.png") else: temp_frame["lidar"] = Data(f"{i}.png") segment_test.append(temp_frame) segment_client = FusionSegmentClient( name="test1", data_client=self.fusion_dataset_client) upload_segment = mocker.patch( f"{dataset.__name__}.FusionDatasetClient._upload_segment", return_value=segment_client) assert self.fusion_dataset_client.upload_segment( segment_test).name == "test1" args, keywords = upload_segment.call_args assert args[0] == segment_test assert keywords["jobs"] == 1 assert not keywords["skip_uploaded_files"] upload_segment.assert_called_once()
def test__extract_all_data(self): source_frames = [] ulids = [] for i in range(5): temp_frame = Frame() if i % 2 == 0: temp_frame["camera"] = Data(f"{i}.png") else: temp_frame["lidar"] = Data(f"{i}.png") temp_ulid = from_timestamp(10 * i + 10) temp_frame.frame_id = temp_ulid source_frames.append((temp_frame, temp_ulid)) ulids.append(temp_ulid) with Tqdm(5, disable=False) as pbar: for index, values in enumerate( self.fusion_dataset_client._extract_all_data( source_frames, pbar)): data, sensor_name, frame_id = values assert data.path == f"{index}.png" if index % 2 == 0: assert sensor_name == "camera" else: assert sensor_name == "lidar" assert frame_id == ulids[index].str
def test__extract_unuploaded_data(self): source_frames = [] ulids = [] done_frames = {} for i in range(5): temp_frame = Frame() temp_ulid = from_timestamp(10 * i + 10) if i % 2 == 0: temp_frame["camera"] = Data(f"{i}.png") done_frames[temp_ulid.timestamp().timestamp] = temp_frame else: temp_frame["lidar"] = Data(f"{i}.png") ulids.append(temp_ulid) temp_frame.frame_id = temp_ulid source_frames.append((temp_frame, temp_ulid)) with Tqdm(5, disable=False) as pbar: for index, values in enumerate( self.fusion_dataset_client._extract_unuploaded_data( source_frames, pbar, done_frames=done_frames ) ): data, sensor_name, frame_id = values assert data.path == f"{index * 2 + 1}.png" assert sensor_name == "lidar" assert frame_id == ulids[index].str
def test__upload_segment(self, mocker): segment_test = FusionSegment(name="test1") ulids = [] done_frames = [] for i in range(5): temp_frame = Frame() temp_ulid = from_timestamp(10 * i + 10) temp_frame.frame_id = temp_ulid if i % 2 == 0: temp_frame["camera"] = Data(f"{i}.png") done_frames.append(temp_frame) else: temp_frame["lidar"] = Data(f"{i}.png") ulids.append(temp_ulid) segment_test.append(temp_frame) segment_client = FusionSegmentClient( name="test1", data_client=self.fusion_dataset_client) get_or_create_segment = mocker.patch( f"{dataset.__name__}.FusionDatasetClient.get_or_create_segment", return_value=segment_client, ) list_frames = mocker.patch( f"{segment.__name__}.FusionSegmentClient.list_frames", return_value=done_frames, ) multithread_upload = mocker.patch( f"{dataset.__name__}.multithread_upload") with Tqdm(5, disable=False) as pbar: self.fusion_dataset_client._upload_segment( segment_test, jobs=8, skip_uploaded_files=True, pbar=pbar) get_or_create_segment.assert_called_once_with(segment_test.name) list_frames.assert_called_once_with() args, keywords = multithread_upload.call_args for index, values in enumerate(args[1]): data, sensor_name, frame_id = values assert data.path == f"{index * 2 + 1}.png" assert sensor_name == "lidar" assert frame_id == ulids[index * 2 + 1].str assert keywords[ "callback"] == segment_client._synchronize_upload_info assert keywords["jobs"] == 8 assert keywords["pbar"] == pbar multithread_upload.assert_called_once() with Tqdm(5, disable=False) as pbar: self.fusion_dataset_client._upload_segment( segment_test, jobs=8, skip_uploaded_files=False, pbar=pbar) get_or_create_segment.assert_called_with(segment_test.name) list_frames.assert_called_with() args, keywords = multithread_upload.call_args for index, values in enumerate(args[1]): data, sensor_name, frame_id = values assert data.path == f"{index}.png" if index % 2 == 0: assert sensor_name == "camera" else: assert sensor_name == "lidar" assert frame_id == ulids[index].str assert keywords[ "callback"] == segment_client._synchronize_upload_info assert keywords["jobs"] == 8 assert keywords["pbar"] == pbar