Skip to content

Commit 383c152

Browse files
committed
tests for slices
1 parent 1a743e3 commit 383c152

File tree

3 files changed

+60
-4
lines changed

3 files changed

+60
-4
lines changed

nucleus/dataset.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ def create_slice(
203203
"""
204204
if dataset_item_ids and reference_ids:
205205
raise Exception(
206-
"You cannot both dataset_item_ids and reference_ids"
206+
"You cannot specify both dataset_item_ids and reference_ids"
207207
)
208208
payload: Dict[str, Any] = {NAME_KEY: name}
209209
if dataset_item_ids:

nucleus/slice.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def info(self, id_type: str = DATASET_ITEM_ID_KEY) -> dict:
2323
{
2424
"name": str,
2525
"dataset_id": str,
26-
"dataset_item_ids": List[str],
26+
"dataset_item_ids" or "reference_ids": List[str],
2727
}
2828
"""
2929
return self._client.slice_info(self.slice_id, id_type)

tests/test_dataset.py

Lines changed: 58 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515

1616
TEST_DATASET_NAME = '[PyTest] Test Dataset'
17+
TEST_SLICE_NAME = '[PyTest] Test Slice'
1718
TEST_IMG_URLS = [
1819
's3://scaleapi-attachments/BDD/BDD/bdd100k/images/100k/train/6dd63871-831611a6.jpg',
1920
's3://scaleapi-attachments/BDD/BDD/bdd100k/images/100k/train/82c1005c-e2d1d94f.jpg',
@@ -22,14 +23,13 @@
2223
's3://scaleapi-attachments/BDD/BDD/bdd100k/images/100k/train/89b42832-10d662f4.jpg',
2324
]
2425

25-
@pytest.fixture(scope='module')
26+
@pytest.fixture()
2627
def dataset(CLIENT):
2728
ds = CLIENT.create_dataset(TEST_DATASET_NAME)
2829
yield ds
2930

3031
CLIENT.delete_dataset(ds.id)
3132

32-
3333
def test_dataset_create_and_delete(CLIENT):
3434
# Creation
3535
ds = CLIENT.create_dataset(TEST_DATASET_NAME)
@@ -83,3 +83,59 @@ def check_is_expected_response(response):
8383

8484
response = dataset.append(ds_items_with_metadata)
8585
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

Comments
 (0)