|
14 | 14 |
|
15 | 15 |
|
16 | 16 | TEST_DATASET_NAME = '[PyTest] Test Dataset'
|
| 17 | +TEST_SLICE_NAME = '[PyTest] Test Slice' |
17 | 18 | TEST_IMG_URLS = [
|
18 | 19 | 's3://scaleapi-attachments/BDD/BDD/bdd100k/images/100k/train/6dd63871-831611a6.jpg',
|
19 | 20 | 's3://scaleapi-attachments/BDD/BDD/bdd100k/images/100k/train/82c1005c-e2d1d94f.jpg',
|
|
22 | 23 | 's3://scaleapi-attachments/BDD/BDD/bdd100k/images/100k/train/89b42832-10d662f4.jpg',
|
23 | 24 | ]
|
24 | 25 |
|
25 |
| -@pytest.fixture(scope='module') |
| 26 | +@pytest.fixture() |
26 | 27 | def dataset(CLIENT):
|
27 | 28 | ds = CLIENT.create_dataset(TEST_DATASET_NAME)
|
28 | 29 | yield ds
|
29 | 30 |
|
30 | 31 | CLIENT.delete_dataset(ds.id)
|
31 | 32 |
|
32 |
| - |
33 | 33 | def test_dataset_create_and_delete(CLIENT):
|
34 | 34 | # Creation
|
35 | 35 | ds = CLIENT.create_dataset(TEST_DATASET_NAME)
|
@@ -83,3 +83,59 @@ def check_is_expected_response(response):
|
83 | 83 |
|
84 | 84 | response = dataset.append(ds_items_with_metadata)
|
85 | 85 | check_is_expected_response(response)
|
| 86 | + |
| 87 | + |
| 88 | +def test_slice_create_and_delete(dataset): |
| 89 | + # Dataset upload |
| 90 | + ds_items = [] |
| 91 | + for url in TEST_IMG_URLS: |
| 92 | + ds_items.append(DatasetItem( |
| 93 | + image_location=url, |
| 94 | + reference_id=Path(url).name, |
| 95 | + )) |
| 96 | + response = dataset.append(ds_items) |
| 97 | + assert ERROR_PAYLOAD not in response.json() |
| 98 | + |
| 99 | + # Slice creation |
| 100 | + slc = dataset.create_slice( |
| 101 | + name=TEST_SLICE_NAME, |
| 102 | + reference_ids=[item.reference_id for item in ds_items[:2]], |
| 103 | + ) |
| 104 | + |
| 105 | + dataset_slices = dataset.slices |
| 106 | + assert len(dataset_slices) == 1 |
| 107 | + assert slc.slice_id == dataset_slices[0] |
| 108 | + |
| 109 | + response = slc.info(id_type="reference_id") |
| 110 | + assert response["name"] == TEST_SLICE_NAME |
| 111 | + assert response["dataset_id"] == dataset.id |
| 112 | + assert len(response["reference_ids"]) == 2 |
| 113 | + for item in ds_items[:2]: |
| 114 | + assert item.reference_id in response["reference_ids"] |
| 115 | + print(response) |
| 116 | + |
| 117 | + |
| 118 | +def test_slice_append(dataset): |
| 119 | + # Dataset upload |
| 120 | + ds_items = [] |
| 121 | + for url in TEST_IMG_URLS: |
| 122 | + ds_items.append(DatasetItem( |
| 123 | + image_location=url, |
| 124 | + reference_id=Path(url).name, |
| 125 | + )) |
| 126 | + response = dataset.append(ds_items) |
| 127 | + assert ERROR_PAYLOAD not in response.json() |
| 128 | + |
| 129 | + # Slice creation |
| 130 | + slc = dataset.create_slice( |
| 131 | + name=TEST_SLICE_NAME, |
| 132 | + reference_ids=[ds_items[0].reference_id], |
| 133 | + ) |
| 134 | + |
| 135 | + # Insert duplicate first item |
| 136 | + slc.append(reference_ids=[item.reference_id for item in ds_items[:3]]) |
| 137 | + |
| 138 | + response = slc.info(id_type="reference_ids") |
| 139 | + assert len(response["reference_ids"]) == 3 |
| 140 | + for item in ds_items[:3]: |
| 141 | + assert item.reference_id in response["reference_ids"] |
0 commit comments