Skip to content

Commit 2a7f05f

Browse files
committed
add test case involving MAL for pdf
1 parent 27b7ab4 commit 2a7f05f

File tree

5 files changed

+62
-1
lines changed

5 files changed

+62
-1
lines changed
File renamed without changes.

tests/integration/annotation_import/conftest.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,23 @@ def configured_project(client, ontology, rand_gen, image_url):
121121
dataset.delete()
122122

123123

124+
@pytest.fixture
125+
def configured_project_pdf(client, ontology, rand_gen, pdf_url):
126+
project = client.create_project(name=rand_gen(str))
127+
dataset = client.create_dataset(name=rand_gen(str))
128+
editor = list(
129+
client.get_labeling_frontends(
130+
where=LabelingFrontend.name == "editor"))[0]
131+
project.setup(editor, ontology)
132+
data_row_ids = []
133+
data_row_ids.append(dataset.create_data_row(row_data=pdf_url).uid)
134+
project.datasets.connect(dataset)
135+
project.data_row_ids = data_row_ids
136+
yield project
137+
project.delete()
138+
dataset.delete()
139+
140+
124141
@pytest.fixture
125142
def prediction_id_mapping(configured_project):
126143
#Maps tool types to feature schema ids

tests/integration/annotation_import/test_bulk_import_request.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
import uuid
22
import ndjson
33
import pytest
4+
import random
45

56
from labelbox.exceptions import MALValidationError, UuidError
67
from labelbox.schema.bulk_import_request import BulkImportRequest
78
from labelbox.schema.enums import BulkImportRequestState
9+
from labelbox.schema.annotation_import import MALPredictionImport
810
"""
911
- Here we only want to check that the uploads are calling the validation
1012
- Then with unit tests we can check the types of errors raised
@@ -185,3 +187,37 @@ def test_delete(configured_project, predictions):
185187
bulk_import_request.delete()
186188
all_import_requests = configured_project.bulk_import_requests()
187189
assert len(list(all_import_requests)) == 0
190+
191+
192+
def test_pdf_mal_bbox(client, configured_project_pdf):
193+
"""
194+
tests pdf mal against only a bbox annotation
195+
"""
196+
annotations = []
197+
num_annotations = 1
198+
199+
for row in configured_project_pdf.export_queued_data_rows():
200+
for _ in range(num_annotations):
201+
annotations.append({
202+
"uuid": str(uuid.uuid4()),
203+
"name": "bbox",
204+
"dataRow": {
205+
"id": row['id']
206+
},
207+
"bbox": {
208+
"top": round(random.uniform(0, 300), 2),
209+
"left": round(random.uniform(0, 300), 2),
210+
"height": round(random.uniform(200, 500), 2),
211+
"width": round(random.uniform(0, 200), 2)
212+
},
213+
"page": random.randint(0, 1),
214+
"unit": "POINTS"
215+
})
216+
import_annotations = MALPredictionImport.create_from_objects(
217+
client=client,
218+
project_id=configured_project_pdf.uid,
219+
name=f"import {str(uuid.uuid4())}",
220+
predictions=annotations)
221+
import_annotations.wait_until_done()
222+
223+
assert import_annotations.errors == []

tests/integration/conftest.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,14 @@ def image_url(client):
152152
sign=True)
153153

154154

155+
@pytest.fixture(scope="session")
156+
def pdf_url(client):
157+
return client.upload_file('tests/assets/loremipsum.pdf')
158+
# content_type="application/pdf",
159+
# filename="document.pdf",
160+
# sign=True)
161+
162+
155163
@pytest.fixture
156164
def project(client, rand_gen):
157165
project = client.create_project(name=rand_gen(str))

tests/integration/test_project.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ def test_same_ontology_after_instructions(
183183
configured_project_with_complex_ontology):
184184
project, _ = configured_project_with_complex_ontology
185185
initial_ontology = project.ontology().normalized
186-
project.upsert_instructions('tests/data/assets/loremipsum.pdf')
186+
project.upsert_instructions('tests/assets/loremipsum.pdf')
187187
updated_ontology = project.ontology().normalized
188188

189189
instructions = updated_ontology.pop('projectInstructions')

0 commit comments

Comments
 (0)