Skip to content

Commit 85e48c0

Browse files
[AL-5942] Moving tests around to the designated folders (#1203)
1 parent 1e1c5c8 commit 85e48c0

File tree

8 files changed

+105
-263
lines changed

8 files changed

+105
-263
lines changed

tests/integration/export_v2/test_export_data_rows.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,24 @@ def test_export_data_rows(client, data_row, wait_for_data_row_processing):
1414
"project_details": True,
1515
"data_row_details": True
1616
}
17+
1718
task = DataRow.export_v2(client=client, data_rows=[data_row])
1819
task.wait_till_done()
1920
assert task.status == "COMPLETE"
2021
assert task.errors is None
2122
assert len(task.result) == 1
22-
assert task.result[0]["data_row"]["id"] == data_row.uid
23-
assert task.result[0]["data_row"]["external_id"] == data_row.external_id
24-
assert task.result[0]["data_row"]["row_data"] == data_row.row_data
23+
assert task.result[0]['data_row']['id'] == data_row.uid
24+
25+
task = DataRow.export_v2(client=client, data_rows=[data_row.uid])
26+
task.wait_till_done()
27+
assert task.status == "COMPLETE"
28+
assert task.errors is None
29+
assert len(task.result) == 1
30+
assert task.result[0]['data_row']['id'] == data_row.uid
31+
32+
task = DataRow.export_v2(client=client, global_keys=[data_row.global_key])
33+
task.wait_till_done()
34+
assert task.status == "COMPLETE"
35+
assert task.errors is None
36+
assert len(task.result) == 1
37+
assert task.result[0]['data_row']['id'] == data_row.uid

tests/integration/export_v2/test_export_dataset.py

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import pytest
22

33

4-
@pytest.mark.parametrize('data_rows', [2], indirect=True)
4+
@pytest.mark.parametrize('data_rows', [3], indirect=True)
55
def test_dataset_export_v2(export_v2_test_helpers, dataset, data_rows):
66
data_row_ids = [dr.uid for dr in data_rows]
77
params = {"performance_details": False, "label_details": False}
@@ -11,10 +11,7 @@ def test_dataset_export_v2(export_v2_test_helpers, dataset, data_rows):
1111
assert set([dr['data_row']['id'] for dr in task_results
1212
]) == set(data_row_ids)
1313

14-
15-
@pytest.mark.parametrize('data_rows', [3], indirect=True)
16-
def test_dataset_export_v2_datarow_list(export_v2_test_helpers, dataset,
17-
data_rows):
14+
# testing with a datarow ids filter
1815
datarow_filter_size = 2
1916
data_row_ids = [dr.uid for dr in data_rows]
2017

@@ -29,3 +26,19 @@ def test_dataset_export_v2_datarow_list(export_v2_test_helpers, dataset,
2926
# only filtered datarows should be exported
3027
assert set([dr['data_row']['id'] for dr in task_results
3128
]) == set(data_row_ids[:datarow_filter_size])
29+
30+
# testing with a global key and a datarow id filter
31+
datarow_filter_size = 2
32+
global_keys = [dr.global_key for dr in data_rows]
33+
34+
params = {"performance_details": False, "label_details": False}
35+
filters = {"global_keys": global_keys[:datarow_filter_size]}
36+
37+
task_results = export_v2_test_helpers.run_dataset_export_v2_task(
38+
dataset, filters=filters, params=params)
39+
40+
# only 2 datarows should be exported
41+
assert len(task_results) == datarow_filter_size
42+
# only filtered datarows should be exported
43+
assert set([dr['data_row']['global_key'] for dr in task_results
44+
]) == set(global_keys[:datarow_filter_size])

tests/integration/export_v2/test_export_project.py

Lines changed: 70 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
from datetime import datetime, timezone, timedelta
22

33
import pytest
4+
import uuid
5+
from typing import Tuple
46

57
from labelbox.schema.media_type import MediaType
8+
from labelbox import Project, Dataset
9+
from labelbox.schema.data_row import DataRow
10+
from labelbox.schema.label import Label
611

712
IMAGE_URL = "https://storage.googleapis.com/lb-artifacts-testing-public/sdk_integration_test/potato.jpeg"
813

@@ -86,17 +91,25 @@ def test_project_export_v2_date_filters(client, export_v2_test_helpers,
8691

8792
filters = {
8893
"last_activity_at": ["2000-01-01 00:00:00", "2050-01-01 00:00:00"],
89-
"label_created_at": ["2000-01-01 00:00:00", "2050-01-01 00:00:00"]
94+
"label_created_at": ["2000-01-01 00:00:00", "2050-01-01 00:00:00"],
95+
"task_queue_status": "InReview"
9096
}
9197

9298
# TODO: Right now we don't have a way to test this
9399
include_performance_details = True
94100
params = {
95-
"include_performance_details": include_performance_details,
101+
"performance_details": include_performance_details,
96102
"include_labels": True,
103+
"project_details": True,
97104
"media_type_override": MediaType.Image
98105
}
99106

107+
task_queues = project.task_queues()
108+
109+
review_queue = next(
110+
tq for tq in task_queues if tq.queue_type == "MANUAL_REVIEW_QUEUE")
111+
project.move_data_rows_to_task_queue([data_row.uid], review_queue.uid)
112+
100113
task_results = export_v2_test_helpers.run_project_export_v2_task(
101114
project, task_name=task_name, filters=filters, params=params)
102115

@@ -105,6 +118,7 @@ def test_project_export_v2_date_filters(client, export_v2_test_helpers,
105118
task_project_label_ids_set = set(
106119
map(lambda prediction: prediction['id'], task_project['labels']))
107120
assert label_id in task_project_label_ids_set
121+
assert task_project['project_details']['workflow_status'] == 'IN_REVIEW'
108122

109123
# TODO: Add back in when we have a way to test this
110124
# if include_performance_details:
@@ -156,7 +170,7 @@ def test_project_export_v2_with_iso_date_filters(client, export_v2_test_helpers,
156170

157171

158172
@pytest.mark.parametrize("data_rows", [3], indirect=True)
159-
def test_project_export_v2_datarow_filter(
173+
def test_project_export_v2_datarows_filter(
160174
export_v2_test_helpers,
161175
configured_batch_project_with_multiple_datarows):
162176
project, _, data_rows = configured_batch_project_with_multiple_datarows
@@ -178,3 +192,56 @@ def test_project_export_v2_datarow_filter(
178192
# only filtered datarows should be exported
179193
assert set([dr['data_row']['id'] for dr in task_results
180194
]) == set(data_row_ids[:datarow_filter_size])
195+
196+
global_keys = [dr.global_key for dr in data_rows]
197+
filters = {
198+
"last_activity_at": ["2000-01-01 00:00:00", "2050-01-01 00:00:00"],
199+
"label_created_at": ["2000-01-01 00:00:00", "2050-01-01 00:00:00"],
200+
"global_keys": global_keys[:datarow_filter_size]
201+
}
202+
params = {"data_row_details": True, "media_type_override": MediaType.Image}
203+
task_results = export_v2_test_helpers.run_project_export_v2_task(
204+
project, filters=filters, params=params)
205+
206+
# only 2 datarows should be exported
207+
assert len(task_results) == datarow_filter_size
208+
# only filtered datarows should be exported
209+
assert set([dr['data_row']['global_key'] for dr in task_results
210+
]) == set(global_keys[:datarow_filter_size])
211+
212+
213+
def test_batch_project_export_v2(
214+
configured_batch_project_with_label: Tuple[Project, Dataset, DataRow,
215+
Label],
216+
export_v2_test_helpers, dataset: Dataset, image_url: str):
217+
project, dataset, *_ = configured_batch_project_with_label
218+
219+
batch = list(project.batches())[0]
220+
filters = {
221+
"last_activity_at": ["2000-01-01 00:00:00", "2050-01-01 00:00:00"],
222+
"label_created_at": ["2000-01-01 00:00:00", "2050-01-01 00:00:00"],
223+
"batch_ids": [batch.uid],
224+
}
225+
params = {
226+
"include_performance_details": True,
227+
"include_labels": True,
228+
"media_type_override": MediaType.Image
229+
}
230+
task_name = "test_batch_export_v2"
231+
task = dataset.create_data_rows([
232+
{
233+
"row_data": image_url,
234+
"external_id": "my-image"
235+
},
236+
] * 2)
237+
task.wait_till_done()
238+
data_rows = [dr.uid for dr in list(dataset.export_data_rows())]
239+
batch_one = f'batch one {uuid.uuid4()}'
240+
241+
# This test creates two batches, only one batch should be exporter
242+
# Creatin second batch that will not be used in the export due to the filter: batch_id
243+
project.create_batch(batch_one, data_rows)
244+
245+
task_results = export_v2_test_helpers.run_project_export_v2_task(
246+
project, task_name=task_name, filters=filters, params=params)
247+
assert (batch.size == len(task_results))

tests/integration/export_v2/test_legacy_export.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ def test_issues_export(project):
220220

221221

222222
def test_dataset_export(dataset, image_url):
223-
n_data_rows = 5
223+
n_data_rows = 2
224224
ids = set()
225225
for _ in range(n_data_rows):
226226
ids.add(dataset.create_data_row(row_data=image_url))

tests/integration/test_data_rows.py

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
from labelbox import DataRow
1111
from labelbox.exceptions import MalformedQueryException
12-
from labelbox.schema.export_filters import DatarowExportFilters
1312
from labelbox.schema.task import Task
1413
from labelbox.schema.data_row_metadata import DataRowMetadataField, DataRowMetadataKind
1514
import labelbox.exceptions
@@ -1037,30 +1036,3 @@ def test_create_data_row_with_media_type(dataset, image_url, is_adv_enabled):
10371036
exc.value)
10381037

10391038
dataset.create_data_row(row_data=image_url, media_type="IMAGE")
1040-
1041-
1042-
def test_export_data_rows(client, data_row, wait_for_data_row_processing):
1043-
# Ensure created data rows are indexed
1044-
data_row = wait_for_data_row_processing(client, data_row)
1045-
time.sleep(7) # temp fix for ES indexing delay
1046-
1047-
task = DataRow.export_v2(client=client, data_rows=[data_row])
1048-
task.wait_till_done()
1049-
assert task.status == "COMPLETE"
1050-
assert task.errors is None
1051-
assert len(task.result) == 1
1052-
assert task.result[0]['data_row']['id'] == data_row.uid
1053-
1054-
task = DataRow.export_v2(client=client, data_rows=[data_row.uid])
1055-
task.wait_till_done()
1056-
assert task.status == "COMPLETE"
1057-
assert task.errors is None
1058-
assert len(task.result) == 1
1059-
assert task.result[0]['data_row']['id'] == data_row.uid
1060-
1061-
task = DataRow.export_v2(client=client, global_keys=[data_row.global_key])
1062-
task.wait_till_done()
1063-
assert task.status == "COMPLETE"
1064-
assert task.errors is None
1065-
assert len(task.result) == 1
1066-
assert task.result[0]['data_row']['id'] == data_row.uid

tests/integration/test_dataset.py

Lines changed: 0 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -144,59 +144,6 @@ def test_bulk_conversation(dataset, sample_bulk_conversation: list) -> None:
144144
assert len(list(dataset.data_rows())) == len(sample_bulk_conversation)
145145

146146

147-
def test_data_row_export(dataset, image_url):
148-
n_data_rows = 2
149-
ids = set()
150-
for _ in range(n_data_rows):
151-
ids.add(dataset.create_data_row(row_data=image_url))
152-
result = list(dataset.export_data_rows())
153-
assert len(result) == n_data_rows
154-
assert set(result) == ids
155-
156-
157-
@pytest.mark.parametrize('data_rows', [3], indirect=True)
158-
def test_dataset_export_v2(export_v2_test_helpers, dataset, data_rows):
159-
data_row_ids = [dr.uid for dr in data_rows]
160-
params = {"performance_details": False, "label_details": False}
161-
task_results = export_v2_test_helpers.run_dataset_export_v2_task(
162-
dataset, params=params)
163-
assert len(task_results) == 3
164-
assert set([dr['data_row']['id'] for dr in task_results
165-
]) == set(data_row_ids)
166-
167-
# testing with a datarow ids filter
168-
datarow_filter_size = 2
169-
data_row_ids = [dr.uid for dr in data_rows]
170-
171-
params = {"performance_details": False, "label_details": False}
172-
filters = {"data_row_ids": data_row_ids[:datarow_filter_size]}
173-
174-
task_results = export_v2_test_helpers.run_dataset_export_v2_task(
175-
dataset, filters=filters, params=params)
176-
177-
# only 2 datarows should be exported
178-
assert len(task_results) == datarow_filter_size
179-
# only filtered datarows should be exported
180-
assert set([dr['data_row']['id'] for dr in task_results
181-
]) == set(data_row_ids[:datarow_filter_size])
182-
183-
# testing with a global key and a datarow id filter
184-
datarow_filter_size = 2
185-
global_keys = [dr.global_key for dr in data_rows]
186-
187-
params = {"performance_details": False, "label_details": False}
188-
filters = {"global_keys": global_keys[:datarow_filter_size]}
189-
190-
task_results = export_v2_test_helpers.run_dataset_export_v2_task(
191-
dataset, filters=filters, params=params)
192-
193-
# only 2 datarows should be exported
194-
assert len(task_results) == datarow_filter_size
195-
# only filtered datarows should be exported
196-
assert set([dr['data_row']['global_key'] for dr in task_results
197-
]) == set(global_keys[:datarow_filter_size])
198-
199-
200147
def test_create_descriptor_file(dataset):
201148
import unittest.mock as mock
202149
with mock.patch.object(dataset.client,

0 commit comments

Comments
 (0)