1010
1111from labelbox import DataRow
1212from labelbox .exceptions import MalformedQueryException
13- from labelbox .schema .export_filters import DatarowExportFilters
1413from labelbox .schema .task import Task
1514from labelbox .schema .data_row_metadata import DataRowMetadataField , DataRowMetadataKind
1615import labelbox .exceptions
17- from utils import INTEGRATION_SNAPSHOT_DIRECTORY
1816
1917SPLIT_SCHEMA_ID = "cko8sbczn0002h2dkdaxb5kal"
2018TEST_SPLIT_ID = "cko8scbz70005h2dkastwhgqt"
@@ -484,8 +482,7 @@ def create_data_row(data_rows):
484482 CUSTOM_TEXT_SCHEMA_NAME ].uid
485483
486484
487- def test_create_data_rows_with_invalid_metadata (dataset , image_url ,
488- is_adv_enabled ):
485+ def test_create_data_rows_with_invalid_metadata (dataset , image_url ):
489486 fields = make_metadata_fields ()
490487 # make the payload invalid by providing the same schema id more than once
491488 fields .append (
@@ -496,14 +493,11 @@ def test_create_data_rows_with_invalid_metadata(dataset, image_url,
496493 DataRow .metadata_fields : fields
497494 }])
498495 task .wait_till_done (timeout_seconds = 60 )
499- if is_adv_enabled :
500- assert task .status == "COMPLETE"
501- assert len (task .failed_data_rows ) == 1
502- assert f"A schemaId can only be specified once per DataRow : [{ TEXT_SCHEMA_ID } ]" in task .failed_data_rows [
503- 0 ]["message" ]
504- else :
505- assert task .status == "FAILED"
506- assert len (task .failed_data_rows ) > 0
496+
497+ assert task .status == "COMPLETE"
498+ assert len (task .failed_data_rows ) == 1
499+ assert f"A schemaId can only be specified once per DataRow : [{ TEXT_SCHEMA_ID } ]" in task .failed_data_rows [
500+ 0 ]["message" ]
507501
508502
509503def test_create_data_rows_with_metadata_missing_value (dataset , image_url ):
@@ -815,7 +809,7 @@ def test_data_row_bulk_creation_with_unique_global_keys(dataset, sample_image):
815809
816810
817811def test_data_row_bulk_creation_with_same_global_keys (dataset , sample_image ,
818- snapshot , is_adv_enabled ):
812+ snapshot ):
819813 global_key_1 = str (uuid .uuid4 ())
820814 task = dataset .create_data_rows ([{
821815 DataRow .row_data : sample_image ,
@@ -826,48 +820,22 @@ def test_data_row_bulk_creation_with_same_global_keys(dataset, sample_image,
826820 }])
827821
828822 task .wait_till_done ()
829- if is_adv_enabled :
830- assert task .status == "COMPLETE"
831- assert type (task .failed_data_rows ) is list
832- assert len (task .failed_data_rows ) == 1
833- assert type (task .created_data_rows ) is list
834- assert len (task .created_data_rows ) == 1
835- assert task .failed_data_rows [0 ][
836- 'message' ] == f"Duplicate global key: '{ global_key_1 } '"
837- assert task .failed_data_rows [0 ]['failedDataRows' ][0 ][
838- 'externalId' ] == sample_image
839- assert task .created_data_rows [0 ]['externalId' ] == sample_image
840- assert task .created_data_rows [0 ]['globalKey' ] == global_key_1
841- else :
842- assert task .status == "FAILED"
843- assert len (task .failed_data_rows ) > 0
844- assert len (list (dataset .data_rows ())) == 0
845- assert task .errors == "Data rows contain duplicate global keys"
846-
847- # Dynamic values, resetting to make snapshot
848- task .failed_data_rows [0 ]['failedDataRows' ][0 ]['rowData' ] = ''
849- task .failed_data_rows [0 ]['failedDataRows' ][1 ]['rowData' ] = ''
850- task .failed_data_rows [0 ]['failedDataRows' ][0 ]['globalKey' ] = ''
851- task .failed_data_rows [0 ]['failedDataRows' ][1 ]['globalKey' ] = ''
852- snapshot .snapshot_dir = INTEGRATION_SNAPSHOT_DIRECTORY
853- snapshot .assert_match (
854- json .dumps (task .failed_data_rows ),
855- 'test_data_rows.test_data_row_bulk_creation_with_same_global_keys.failed_data_rows.json'
856- )
857-
858- task = dataset .create_data_rows ([{
859- DataRow .row_data : sample_image ,
860- DataRow .global_key : global_key_1
861- }])
862823
863- task .wait_till_done ()
864- assert task .status == "COMPLETE"
865- assert len (list (dataset .data_rows ())) == 1
866- assert list (dataset .data_rows ())[0 ].global_key == global_key_1
824+ assert task .status == "COMPLETE"
825+ assert type (task .failed_data_rows ) is list
826+ assert len (task .failed_data_rows ) == 1
827+ assert type (task .created_data_rows ) is list
828+ assert len (task .created_data_rows ) == 1
829+ assert task .failed_data_rows [0 ][
830+ 'message' ] == f"Duplicate global key: '{ global_key_1 } '"
831+ assert task .failed_data_rows [0 ]['failedDataRows' ][0 ][
832+ 'externalId' ] == sample_image
833+ assert task .created_data_rows [0 ]['externalId' ] == sample_image
834+ assert task .created_data_rows [0 ]['globalKey' ] == global_key_1
867835
868836
869837def test_data_row_delete_and_create_with_same_global_key (
870- client , dataset , sample_image , is_adv_enabled ):
838+ client , dataset , sample_image ):
871839 global_key_1 = str (uuid .uuid4 ())
872840 data_row_payload = {
873841 DataRow .row_data : sample_image ,
@@ -887,15 +855,10 @@ def test_data_row_delete_and_create_with_same_global_key(
887855 task = dataset .create_data_rows ([data_row_payload ])
888856 task .wait_till_done ()
889857
890- if is_adv_enabled :
891- assert task .status == "COMPLETE"
892- assert len (task .failed_data_rows ) == 1
893- assert task .failed_data_rows [0 ][
894- 'message' ] == f"Duplicate global key: '{ global_key_1 } '"
895- else :
896- assert task .status == "FAILED"
897- assert len (task .failed_data_rows ) > 0
898- assert task .errors .startswith ("Duplicate global keys found" )
858+ assert task .status == "COMPLETE"
859+ assert len (task .failed_data_rows ) == 1
860+ assert task .failed_data_rows [0 ][
861+ 'message' ] == f"Duplicate global key: '{ global_key_1 } '"
899862
900863 # delete datarow
901864 client .get_data_row (new_data_row_id ).delete ()
@@ -934,7 +897,7 @@ def test_data_row_bulk_creation_sync_with_unique_global_keys(
934897
935898
936899def test_data_row_bulk_creation_sync_with_same_global_keys (
937- dataset , sample_image , is_adv_enabled ):
900+ dataset , sample_image ):
938901 global_key_1 = str (uuid .uuid4 ())
939902
940903 with pytest .raises (labelbox .exceptions .MalformedQueryException ) as exc_info :
@@ -946,22 +909,10 @@ def test_data_row_bulk_creation_sync_with_same_global_keys(
946909 DataRow .global_key : global_key_1
947910 }])
948911
949- if is_adv_enabled :
950- # ADV will import the first data row but not the second (duplicate global key)
951- assert len (list (dataset .data_rows ())) == 1
952- assert list (dataset .data_rows ())[0 ].global_key == global_key_1
953- assert "Some data rows were not imported. Check error output here" in str (
954- exc_info .value )
955- else :
956- assert len (list (dataset .data_rows ())) == 0
957-
958- dataset .create_data_rows_sync ([{
959- DataRow .row_data : sample_image ,
960- DataRow .global_key : global_key_1
961- }])
962-
963- assert len (list (dataset .data_rows ())) == 1
964- assert list (dataset .data_rows ())[0 ].global_key == global_key_1
912+ assert len (list (dataset .data_rows ())) == 1
913+ assert list (dataset .data_rows ())[0 ].global_key == global_key_1
914+ assert "Some data rows were not imported. Check error output here" in str (
915+ exc_info .value )
965916
966917
967918@pytest .fixture
@@ -995,27 +946,19 @@ def test_create_conversational_text(converstational_data_rows,
995946 data_row .row_data ).json () == conversational_content ['row_data' ]
996947
997948
998- def test_invalid_media_type (dataset , conversational_content , is_adv_enabled ):
999- for error_message , invalid_media_type in [[
1000- "Found invalid contents for media type: 'IMAGE'" , 'IMAGE'
1001- ], ["Found invalid media type: 'totallyinvalid'" , 'totallyinvalid' ]]:
949+ def test_invalid_media_type (dataset , conversational_content ):
950+ for _ , __ in [["Found invalid contents for media type: 'IMAGE'" , 'IMAGE' ],
951+ [
952+ "Found invalid media type: 'totallyinvalid'" ,
953+ 'totallyinvalid'
954+ ]]:
1002955 # TODO: What error kind should this be? It looks like for global key we are
1003956 # using malformed query. But for invalid contents in FileUploads we use InvalidQueryError
1004957 with pytest .raises (labelbox .exceptions .InvalidQueryError ):
1005958 dataset .create_data_rows_sync ([{
1006959 ** conversational_content , 'media_type' : 'IMAGE'
1007960 }])
1008961
1009- if is_adv_enabled :
1010- # ADV does not take media type hint into account for async import requests
1011- continue
1012-
1013- task = dataset .create_data_rows ([{
1014- ** conversational_content , 'media_type' : invalid_media_type
1015- }])
1016- task .wait_till_done ()
1017- assert task .errors == {'message' : error_message }
1018-
1019962
1020963def test_create_tiled_layer (dataset , tile_content ):
1021964 examples = [
@@ -1044,15 +987,12 @@ def test_create_data_row_with_attachments(dataset):
1044987 assert len (attachments ) == 1
1045988
1046989
1047- def test_create_data_row_with_media_type (dataset , image_url , is_adv_enabled ):
990+ def test_create_data_row_with_media_type (dataset , image_url ):
1048991 with pytest .raises (labelbox .exceptions .InvalidQueryError ) as exc :
1049992 dr = dataset .create_data_row (
1050993 row_data = {'invalid_object' : 'invalid_value' }, media_type = "IMAGE" )
1051- if is_adv_enabled :
1052- assert "Media type validation failed, expected: 'image/*', was: application/json" in str (
1053- exc .value )
1054- else :
1055- assert "Found invalid contents for media type: \' IMAGE\' " in str (
1056- exc .value )
994+
995+ assert "Media type validation failed, expected: 'image/*', was: application/json" in str (
996+ exc .value )
1057997
1058998 dataset .create_data_row (row_data = image_url , media_type = "IMAGE" )
0 commit comments