Skip to content

Commit e66d110

Browse files
rexzheng324-cyeyong.yu
authored andcommitted
test: add test cases for copy segment
1 parent 0bf48e3 commit e66d110

File tree

1 file changed

+80
-0
lines changed

1 file changed

+80
-0
lines changed

tests/test_move_and_copy.py

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -352,3 +352,83 @@ def test_copy_segment_abort(self, accesskey, url, tmp_path):
352352
dataset_client.copy_segment("Segment1", "Segment2")
353353

354354
gas_client.delete_dataset(dataset_name)
355+
356+
def test_copy_segment_between_datasets(self, accesskey, url, tmp_path):
357+
gas_client = GAS(access_key=accesskey, url=url)
358+
dataset_name_1 = get_dataset_name()
359+
dataset_name_2 = dataset_name_1 + "_2"
360+
gas_client.create_dataset(dataset_name_1)
361+
dataset_client_2 = gas_client.create_dataset(dataset_name_2)
362+
dataset_1 = Dataset(name=dataset_name_1)
363+
segment_1 = dataset_1.create_segment("Segment1")
364+
dataset_1._catalog = Catalog.loads(CATALOG)
365+
path = tmp_path / "sub"
366+
path.mkdir()
367+
for i in range(10):
368+
local_path = path / f"hello{i}.txt"
369+
local_path.write_text("CONTENT")
370+
data = Data(local_path=str(local_path))
371+
data.label = Label.loads(LABEL)
372+
segment_1.append(data)
373+
dataset_client_2.create_draft("draft_2")
374+
dataset_client_1 = gas_client.upload_dataset(dataset_1)
375+
segment_client = dataset_client_2.copy_segment(
376+
"Segment1", "Segment2", source_client=dataset_client_1
377+
)
378+
assert segment_client.name == "Segment2"
379+
380+
with pytest.raises(InvalidParamsError):
381+
dataset_client_2.copy_segment(
382+
"Segment1", "Segment3", source_client=dataset_client_1, strategy="push"
383+
)
384+
385+
segment2 = Segment("Segment2", client=dataset_client_2)
386+
assert segment2[0].path == "hello0.txt"
387+
assert segment2[0].path == segment_1[0].target_remote_path
388+
assert segment2[0].label
389+
390+
gas_client.delete_dataset(dataset_name_1)
391+
gas_client.delete_dataset(dataset_name_2)
392+
393+
def test_copy_segment_from_commits(self, accesskey, url, tmp_path):
394+
gas_client = GAS(access_key=accesskey, url=url)
395+
dataset_name = get_dataset_name()
396+
gas_client.create_dataset(dataset_name)
397+
dataset = Dataset(name=dataset_name)
398+
segment = dataset.create_segment("Segment1")
399+
dataset._catalog = Catalog.loads(CATALOG)
400+
path = tmp_path / "sub"
401+
path.mkdir()
402+
for i in range(10):
403+
local_path = path / f"hello{i}.txt"
404+
local_path.write_text("CONTENT")
405+
data = Data(local_path=str(local_path))
406+
data.label = Label.loads(LABEL)
407+
segment.append(data)
408+
409+
dataset_client = gas_client.upload_dataset(dataset)
410+
dataset_client.commit("commit_1")
411+
412+
dataset_client.create_draft("draft_2")
413+
dataset_client.commit("commit_2")
414+
415+
dataset_client_1 = gas_client.get_dataset(dataset_name)
416+
dataset_client_1 = gas_client.get_dataset(dataset_name)
417+
commit_id = dataset_client_1.list_commits()[-1].commit_id
418+
dataset_client_1.checkout(revision=commit_id)
419+
dataset_client.create_draft("draft_3")
420+
segment_client = dataset_client.copy_segment(
421+
"Segment1", "Segment2", source_client=dataset_client_1
422+
)
423+
assert segment_client.name == "Segment2"
424+
425+
with pytest.raises(InvalidParamsError):
426+
dataset_client.copy_segment("Segment1", "Segment3", strategy="push")
427+
segment2 = Segment("Segment2", client=dataset_client)
428+
assert segment2[0].path == "hello0.txt"
429+
assert segment2[0].path == segment[0].target_remote_path
430+
assert segment2[0].label
431+
commit_id_1 = dataset_client_1.list_commits()[0].commit_id
432+
dataset_client.checkout(revision=commit_id_1)
433+
434+
gas_client.delete_dataset(dataset_name)

0 commit comments

Comments
 (0)