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