Skip to content

Commit d81e99e

Browse files
author
Matt Sokoloff
committed
limit picsum requests
1 parent ebc9bf5 commit d81e99e

File tree

7 files changed

+56
-59
lines changed

7 files changed

+56
-59
lines changed

tests/integration/bulk_import/conftest.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
from labelbox.schema.labeling_frontend import LabelingFrontend
77
from labelbox.schema.annotation_import import MALPredictionImport
88

9-
IMG_URL = "https://picsum.photos/200/300"
10-
119

1210
@pytest.fixture
1311
def ontology():
@@ -103,7 +101,7 @@ def ontology():
103101

104102

105103
@pytest.fixture
106-
def configured_project(client, ontology, rand_gen):
104+
def configured_project(client, ontology, rand_gen, image_url):
107105
project = client.create_project(name=rand_gen(str))
108106
dataset = client.create_dataset(name=rand_gen(str))
109107
editor = list(
@@ -112,7 +110,7 @@ def configured_project(client, ontology, rand_gen):
112110
project.setup(editor, ontology)
113111
data_row_ids = []
114112
for _ in range(len(ontology['tools']) + len(ontology['classifications'])):
115-
data_row_ids.append(dataset.create_data_row(row_data=IMG_URL).uid)
113+
data_row_ids.append(dataset.create_data_row(row_data=image_url).uid)
116114
project.datasets.connect(dataset)
117115
project.data_row_ids = data_row_ids
118116
yield project

tests/integration/conftest.py

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from types import SimpleNamespace
1111

1212
import pytest
13+
import requests
1314

1415
from labelbox import Client
1516
from labelbox import LabelingFrontend
@@ -30,7 +31,7 @@ class Environ(Enum):
3031
STAGING = 'staging'
3132

3233

33-
@pytest.fixture
34+
@pytest.fixture(scope="session")
3435
def environ() -> Environ:
3536
"""
3637
Checks environment variables for LABELBOX_ENVIRON to be
@@ -127,11 +128,16 @@ def execute(self, query=None, params=None, check_naming=True, **kwargs):
127128
return super().execute(query, params, **kwargs)
128129

129130

130-
@pytest.fixture
131+
@pytest.fixture(scope="session")
131132
def client(environ: str):
132133
return IntegrationClient(environ)
133134

134135

136+
@pytest.fixture(scope="session")
137+
def image_url(client):
138+
return client.upload_data(requests.get(IMG_URL).content, sign=True)
139+
140+
135141
@pytest.fixture
136142
def rand_gen():
137143

@@ -187,10 +193,10 @@ def dataset(client, rand_gen):
187193

188194

189195
@pytest.fixture
190-
def datarow(dataset):
196+
def datarow(dataset, image_url):
191197
task = dataset.create_data_rows([
192198
{
193-
"row_data": IMG_URL,
199+
"row_data": image_url,
194200
"external_id": "my-image"
195201
},
196202
])
@@ -204,10 +210,10 @@ def datarow(dataset):
204210

205211

206212
@pytest.fixture
207-
def label_pack(project, rand_gen):
213+
def label_pack(project, rand_gen, image_url):
208214
client = project.client
209215
dataset = client.create_dataset(name=rand_gen(str), projects=project)
210-
data_row = dataset.create_data_row(row_data=IMG_URL)
216+
data_row = dataset.create_data_row(row_data=image_url)
211217
label = project.create_label(data_row=data_row, label=rand_gen(str))
212218
yield LabelPack(project, dataset, data_row, label)
213219
dataset.delete()
@@ -276,9 +282,9 @@ def project_pack(client):
276282

277283

278284
@pytest.fixture
279-
def configured_project(project, client, rand_gen):
285+
def configured_project(project, client, rand_gen, image_url):
280286
dataset = client.create_dataset(name=rand_gen(str), projects=project)
281-
dataset.create_data_row(row_data=IMG_URL)
287+
dataset.create_data_row(row_data=image_url)
282288
editor = list(
283289
project.client.get_labeling_frontends(
284290
where=LabelingFrontend.name == "editor"))[0]
@@ -318,10 +324,11 @@ def submit(project_id, data_row_id):
318324

319325

320326
@pytest.fixture
321-
def configured_project_with_label(client, rand_gen, annotation_submit_fn):
327+
def configured_project_with_label(client, rand_gen, annotation_submit_fn,
328+
image_url):
322329
project = client.create_project(name=rand_gen(str))
323330
dataset = client.create_dataset(name=rand_gen(str), projects=project)
324-
data_row = dataset.create_data_row(row_data=IMG_URL)
331+
data_row = dataset.create_data_row(row_data=image_url)
325332
editor = list(
326333
project.client.get_labeling_frontends(
327334
where=LabelingFrontend.name == "editor"))[0]

tests/integration/test_data_row_metadata.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
from labelbox.schema.data_row_metadata import DataRowMetadataField, DataRowMetadata, DeleteDataRowMetadata, \
77
DataRowMetadataOntology
88

9-
IMG_URL = "https://picsum.photos/id/829/200/300"
109
FAKE_SCHEMA_ID = "0" * 25
1110
SPLIT_SCHEMA_ID = "cko8sbczn0002h2dkdaxb5kal"
1211
TRAIN_SPLIT_ID = "cko8sbscr0003h2dk04w86hof"
@@ -22,13 +21,14 @@ def mdo(client):
2221

2322

2423
@pytest.fixture
25-
def big_dataset(dataset: Dataset):
24+
def big_dataset(client, dataset: Dataset, image_url):
25+
image_url = client
2626
task = dataset.create_data_rows([
2727
{
28-
"row_data": IMG_URL,
28+
"row_data": image_url,
2929
"external_id": "my-image"
3030
},
31-
] * 1000)
31+
] * 500)
3232
task.wait_till_done()
3333

3434
yield dataset

tests/integration/test_data_rows.py

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,22 @@
66
from labelbox import DataRow
77
from labelbox.exceptions import InvalidQueryError
88

9-
IMG_URL = "https://picsum.photos/id/829/200/300"
10-
119

1210
def test_get_data_row(datarow, client):
1311
assert client.get_data_row(datarow.uid)
1412

1513

16-
def test_data_row_bulk_creation(dataset, rand_gen):
14+
def test_data_row_bulk_creation(dataset, rand_gen, image_url):
1715
client = dataset.client
1816
assert len(list(dataset.data_rows())) == 0
1917

2018
# Test creation using URL
2119
task = dataset.create_data_rows([
2220
{
23-
DataRow.row_data: IMG_URL
21+
DataRow.row_data: image_url
2422
},
2523
{
26-
"row_data": IMG_URL
24+
"row_data": image_url
2725
},
2826
])
2927
assert task in client.get_user().created_tasks()
@@ -35,7 +33,7 @@ def test_data_row_bulk_creation(dataset, rand_gen):
3533

3634
data_rows = list(dataset.data_rows())
3735
assert len(data_rows) == 2
38-
assert {data_row.row_data for data_row in data_rows} == {IMG_URL}
36+
assert {data_row.row_data for data_row in data_rows} == {image_url}
3937

4038
# Test creation using file name
4139
with NamedTemporaryFile() as fp:
@@ -48,20 +46,20 @@ def test_data_row_bulk_creation(dataset, rand_gen):
4846

4947
data_rows = list(dataset.data_rows())
5048
assert len(data_rows) == 3
51-
url = ({data_row.row_data for data_row in data_rows} - {IMG_URL}).pop()
49+
url = ({data_row.row_data for data_row in data_rows} - {image_url}).pop()
5250
assert requests.get(url).content == data
5351

5452
data_rows[0].delete()
5553

5654

5755
@pytest.mark.slow
58-
def test_data_row_large_bulk_creation(dataset, rand_gen):
56+
def test_data_row_large_bulk_creation(dataset, image_url):
5957
# Do a longer task and expect it not to be complete immediately
6058
with NamedTemporaryFile() as fp:
6159
fp.write("Test data".encode())
6260
fp.flush()
6361
task = dataset.create_data_rows([{
64-
DataRow.row_data: IMG_URL
62+
DataRow.row_data: image_url
6563
}] * 4500 + [fp.name] * 500)
6664
assert task.status == "IN_PROGRESS"
6765
task.wait_till_done()
@@ -70,16 +68,16 @@ def test_data_row_large_bulk_creation(dataset, rand_gen):
7068

7169

7270
@pytest.mark.xfail(reason="DataRow.dataset() relationship not set")
73-
def test_data_row_single_creation(dataset, rand_gen):
71+
def test_data_row_single_creation(dataset, rand_gen, image_url):
7472
client = dataset.client
7573
assert len(list(dataset.data_rows())) == 0
7674

77-
data_row = dataset.create_data_row(row_data=IMG_URL)
75+
data_row = dataset.create_data_row(row_data=image_url)
7876
assert len(list(dataset.data_rows())) == 1
7977
assert data_row.dataset() == dataset
8078
assert data_row.created_by() == client.get_user()
8179
assert data_row.organization() == client.get_organization()
82-
assert requests.get(IMG_URL).content == \
80+
assert requests.get(image_url).content == \
8381
requests.get(data_row.row_data).content
8482
assert data_row.media_attributes is not None
8583

@@ -92,9 +90,9 @@ def test_data_row_single_creation(dataset, rand_gen):
9290
assert requests.get(data_row_2.row_data).content == data
9391

9492

95-
def test_data_row_update(dataset, rand_gen):
93+
def test_data_row_update(dataset, rand_gen, image_url):
9694
external_id = rand_gen(str)
97-
data_row = dataset.create_data_row(row_data=IMG_URL,
95+
data_row = dataset.create_data_row(row_data=image_url,
9896
external_id=external_id)
9997
assert data_row.external_id == external_id
10098

@@ -103,14 +101,14 @@ def test_data_row_update(dataset, rand_gen):
103101
assert data_row.external_id == external_id_2
104102

105103

106-
def test_data_row_filtering_sorting(dataset, rand_gen):
104+
def test_data_row_filtering_sorting(dataset, image_url):
107105
task = dataset.create_data_rows([
108106
{
109-
DataRow.row_data: IMG_URL,
107+
DataRow.row_data: image_url,
110108
DataRow.external_id: "row1"
111109
},
112110
{
113-
DataRow.row_data: IMG_URL,
111+
DataRow.row_data: image_url,
114112
DataRow.external_id: "row2"
115113
},
116114
])
@@ -133,9 +131,9 @@ def test_data_row_filtering_sorting(dataset, rand_gen):
133131
dataset.data_rows(order_by=DataRow.external_id.desc)) == [row2, row1]
134132

135133

136-
def test_data_row_deletion(dataset, rand_gen):
134+
def test_data_row_deletion(dataset, image_url):
137135
task = dataset.create_data_rows([{
138-
DataRow.row_data: IMG_URL,
136+
DataRow.row_data: image_url,
139137
DataRow.external_id: str(i)
140138
} for i in range(10)])
141139
task.wait_till_done()
@@ -159,13 +157,13 @@ def test_data_row_deletion(dataset, rand_gen):
159157
assert {dr.external_id for dr in data_rows} == expected
160158

161159

162-
def test_data_row_iteration(dataset, rand_gen) -> None:
160+
def test_data_row_iteration(dataset, image_url) -> None:
163161
task = dataset.create_data_rows([
164162
{
165-
DataRow.row_data: IMG_URL
163+
DataRow.row_data: image_url
166164
},
167165
{
168-
"row_data": IMG_URL
166+
"row_data": image_url
169167
},
170168
])
171169
task.wait_till_done()

tests/integration/test_dataset.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
from labelbox import Dataset
44
from labelbox.exceptions import ResourceNotFoundError
55

6-
IMG_URL = "https://picsum.photos/200/300"
7-
86

97
def test_dataset(client, rand_gen):
108
before = list(client.get_datasets())
@@ -61,20 +59,20 @@ def test_dataset_filtering(client, rand_gen):
6159
d2.delete()
6260

6361

64-
def test_get_data_row_for_external_id(dataset, rand_gen):
62+
def test_get_data_row_for_external_id(dataset, rand_gen, image_url):
6563
external_id = rand_gen(str)
6664

6765
with pytest.raises(ResourceNotFoundError):
6866
data_row = dataset.data_row_for_external_id(external_id)
6967

70-
data_row = dataset.create_data_row(row_data=IMG_URL,
68+
data_row = dataset.create_data_row(row_data=image_url,
7169
external_id=external_id)
7270

7371
found = dataset.data_row_for_external_id(external_id)
7472
assert found.uid == data_row.uid
7573
assert found.external_id == external_id
7674

77-
dataset.create_data_row(row_data=IMG_URL, external_id=external_id)
75+
dataset.create_data_row(row_data=image_url, external_id=external_id)
7876
assert len(dataset.data_rows_for_external_id(external_id)) == 2
7977

8078

@@ -98,11 +96,11 @@ def test_upload_video_file(dataset, sample_video: str) -> None:
9896
assert response.headers['Content-Type'] == 'video/mp4'
9997

10098

101-
def test_data_row_export(dataset):
99+
def test_data_row_export(dataset, image_url):
102100
n_data_rows = 5
103101
ids = set()
104102
for _ in range(n_data_rows):
105-
ids.add(dataset.create_data_row(row_data=IMG_URL))
103+
ids.add(dataset.create_data_row(row_data=image_url))
106104
result = list(dataset.export_data_rows())
107105
assert len(result) == n_data_rows
108106
assert set(result) == ids

tests/integration/test_label.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66

77
from labelbox import Label
88

9-
IMG_URL = "https://picsum.photos/200/300"
10-
119

1210
@pytest.mark.skip("Cannot query for labels created with create_label")
1311
def test_labels(label_pack):
@@ -57,11 +55,11 @@ def test_label_update(label_pack):
5755

5856

5957
@pytest.mark.skip("Cannot query for labels created with create_label")
60-
def test_label_filter_order(client, project, rand_gen):
58+
def test_label_filter_order(client, project, rand_gen, image_url):
6159
dataset_1 = client.create_dataset(name=rand_gen(str), projects=project)
6260
dataset_2 = client.create_dataset(name=rand_gen(str), projects=project)
63-
data_row_1 = dataset_1.create_data_row(row_data=IMG_URL)
64-
data_row_2 = dataset_2.create_data_row(row_data=IMG_URL)
61+
data_row_1 = dataset_1.create_data_row(row_data=image_url)
62+
data_row_2 = dataset_2.create_data_row(row_data=image_url)
6563

6664
l1 = project.create_label(data_row=data_row_1, label="l1")
6765
time.sleep(1) #Ensure there is no race condition
@@ -86,11 +84,11 @@ def test_label_filter_order(client, project, rand_gen):
8684

8785

8886
@pytest.mark.skip("Cannot query for labels created with create_label")
89-
def test_label_bulk_deletion(project, rand_gen):
87+
def test_label_bulk_deletion(project, rand_gen, image_url):
9088
dataset = project.client.create_dataset(name=rand_gen(str),
9189
projects=project)
92-
row_1 = dataset.create_data_row(row_data=IMG_URL)
93-
row_2 = dataset.create_data_row(row_data=IMG_URL)
90+
row_1 = dataset.create_data_row(row_data=image_url)
91+
row_2 = dataset.create_data_row(row_data=image_url)
9492

9593
l1 = project.create_label(data_row=row_1, label="l1")
9694
l2 = project.create_label(data_row=row_1, label="l2")

tests/integration/test_labeling_parameter_overrides.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
import pytest
22
from labelbox import DataRow
33

4-
IMG_URL = "https://picsum.photos/200/300"
54

6-
7-
def test_labeling_parameter_overrides(project, rand_gen):
5+
def test_labeling_parameter_overrides(project, rand_gen, image_url):
86
dataset = project.client.create_dataset(name=rand_gen(str),
97
projects=project)
108

11-
task = dataset.create_data_rows([{DataRow.row_data: IMG_URL}] * 20)
9+
task = dataset.create_data_rows([{DataRow.row_data: image_url}] * 20)
1210
task.wait_till_done()
1311
assert task.status == "COMPLETE"
1412

0 commit comments

Comments
 (0)