Skip to content

Commit d5508ef

Browse files
Kevin Kimjtsodapop
authored andcommitted
Fix metadata uploads with local file datarow upload
1 parent eea7150 commit d5508ef

File tree

4 files changed

+22
-5
lines changed

4 files changed

+22
-5
lines changed

labelbox/schema/dataset.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -260,11 +260,10 @@ def upload_if_necessary(item):
260260
row_data = item['row_data']
261261
if os.path.exists(row_data):
262262
item_url = self.client.upload_file(item['row_data'])
263-
item = {
264-
"row_data": item_url,
265-
"external_id": item.get('external_id', item['row_data']),
266-
"attachments": item.get('attachments', [])
267-
}
263+
item['row_data'] = item_url
264+
if 'external_id' not in item:
265+
# Default `external_id` to local file name
266+
item['external_id'] = row_data
268267
return item
269268

270269
def validate_attachments(item):

tests/integration/conftest.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,12 @@ def iframe_url(environ) -> str:
188188
return 'https://editor.lb-stage.xyz'
189189

190190

191+
@pytest.fixture
192+
def sample_image() -> str:
193+
path_to_video = 'tests/integration/media/sample_image.jpg'
194+
return path_to_video
195+
196+
191197
@pytest.fixture
192198
def sample_video() -> str:
193199
path_to_video = 'tests/integration/media/cat.mp4'
74.5 KB
Loading

tests/integration/test_data_rows.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -570,3 +570,15 @@ def test_create_data_rows_result(client, dataset, image_url):
570570
assert task.errors is None
571571
for result in task.result:
572572
client.get_data_row(result['id'])
573+
574+
575+
def test_create_data_rows_local_file(dataset, sample_image):
576+
task = dataset.create_data_rows([{
577+
DataRow.row_data: sample_image,
578+
DataRow.metadata_fields: make_metadata_fields()
579+
}])
580+
task.wait_till_done()
581+
assert task.status == "COMPLETE"
582+
data_row = list(dataset.data_rows())[0]
583+
assert data_row.external_id == "tests/integration/media/sample_image.jpg"
584+
assert len(data_row.metadata_fields) == 4

0 commit comments

Comments
 (0)