21
21
from labelbox .schema .media_type import MediaType
22
22
from labelbox .schema .task import Task
23
23
24
- SPLIT_SCHEMA_ID = "cko8sbczn0002h2dkdaxb5kal"
25
- TEST_SPLIT_ID = "cko8scbz70005h2dkastwhgqt"
26
- TEXT_SCHEMA_ID = "cko8s9r5v0001h2dk9elqdidh"
27
- CAPTURE_DT_SCHEMA_ID = "cko8sdzv70006h2dk8jg64zvb"
28
- EXPECTED_METADATA_SCHEMA_IDS = [
29
- SPLIT_SCHEMA_ID ,
30
- TEST_SPLIT_ID ,
31
- TEXT_SCHEMA_ID ,
32
- CAPTURE_DT_SCHEMA_ID ,
33
- ].sort ()
34
- CUSTOM_TEXT_SCHEMA_NAME = "custom_text"
35
-
36
24
37
25
@pytest .fixture
38
- def mdo (client ):
26
+ def mdo (
27
+ client ,
28
+ constants ,
29
+ ):
39
30
mdo = client .get_data_row_metadata_ontology ()
40
31
try :
41
- mdo .create_schema (CUSTOM_TEXT_SCHEMA_NAME , DataRowMetadataKind .string )
32
+ mdo .create_schema (
33
+ constants ["CUSTOM_TEXT_SCHEMA_NAME" ], DataRowMetadataKind .string
34
+ )
42
35
except MalformedQueryException :
43
36
# Do nothing if already exists
44
37
pass
@@ -93,26 +86,18 @@ def tile_content():
93
86
}
94
87
95
88
96
- def make_metadata_fields ():
97
- msg = "A message"
98
- time = datetime .now (timezone .utc )
99
-
100
- fields = [
101
- DataRowMetadataField (schema_id = SPLIT_SCHEMA_ID , value = TEST_SPLIT_ID ),
102
- DataRowMetadataField (schema_id = CAPTURE_DT_SCHEMA_ID , value = time ),
103
- DataRowMetadataField (schema_id = TEXT_SCHEMA_ID , value = msg ),
104
- ]
105
- return fields
106
-
107
-
108
- def make_metadata_fields_dict ():
89
+ @pytest .fixture
90
+ def make_metadata_fields_dict (constants ):
109
91
msg = "A message"
110
92
time = datetime .now (timezone .utc )
111
93
112
94
fields = [
113
- {"schema_id" : SPLIT_SCHEMA_ID , "value" : TEST_SPLIT_ID },
114
- {"schema_id" : CAPTURE_DT_SCHEMA_ID , "value" : time },
115
- {"schema_id" : TEXT_SCHEMA_ID , "value" : msg },
95
+ {
96
+ "schema_id" : constants ["SPLIT_SCHEMA_ID" ],
97
+ "value" : constants ["TEST_SPLIT_ID" ],
98
+ },
99
+ {"schema_id" : constants ["CAPTURE_DT_SCHEMA_ID" ], "value" : time },
100
+ {"schema_id" : constants ["TEXT_SCHEMA_ID" ], "value" : msg },
116
101
]
117
102
return fields
118
103
@@ -375,15 +360,22 @@ def test_create_data_row_with_invalid_input(dataset, image_url):
375
360
dataset .create_data_row ("asdf" )
376
361
377
362
378
- def test_create_data_row_with_metadata (mdo , dataset , image_url ):
363
+ def test_create_data_row_with_metadata (
364
+ mdo ,
365
+ dataset ,
366
+ image_url ,
367
+ make_metadata_fields ,
368
+ constants ,
369
+ make_metadata_fields_dict ,
370
+ ):
379
371
client = dataset .client
380
372
assert len (list (dataset .data_rows ())) == 0
381
373
382
374
data_row = dataset .create_data_row (
383
- row_data = image_url , metadata_fields = make_metadata_fields ()
375
+ row_data = image_url , metadata_fields = make_metadata_fields
384
376
)
385
377
386
- assert len (list ( dataset .data_rows ()) ) == 1
378
+ assert len ([ dr for dr in dataset .data_rows ()] ) == 1
387
379
assert data_row .dataset () == dataset
388
380
assert data_row .created_by () == client .get_user ()
389
381
assert data_row .organization () == client .get_organization ()
@@ -396,19 +388,21 @@ def test_create_data_row_with_metadata(mdo, dataset, image_url):
396
388
metadata = data_row .metadata
397
389
assert len (metadata_fields ) == 3
398
390
assert len (metadata ) == 3
399
- assert [
400
- m [ "schemaId" ] for m in metadata_fields
401
- ].sort () == EXPECTED_METADATA_SCHEMA_IDS
391
+ assert [m [ "schemaId" ] for m in metadata_fields ]. sort () == constants [
392
+ "EXPECTED_METADATA_SCHEMA_IDS"
393
+ ].sort ()
402
394
for m in metadata :
403
395
assert mdo ._parse_upsert (m )
404
396
405
397
406
- def test_create_data_row_with_metadata_dict (mdo , dataset , image_url ):
398
+ def test_create_data_row_with_metadata_dict (
399
+ mdo , dataset , image_url , constants , make_metadata_fields_dict
400
+ ):
407
401
client = dataset .client
408
402
assert len (list (dataset .data_rows ())) == 0
409
403
410
404
data_row = dataset .create_data_row (
411
- row_data = image_url , metadata_fields = make_metadata_fields_dict ()
405
+ row_data = image_url , metadata_fields = make_metadata_fields_dict
412
406
)
413
407
414
408
assert len (list (dataset .data_rows ())) == 1
@@ -424,25 +418,36 @@ def test_create_data_row_with_metadata_dict(mdo, dataset, image_url):
424
418
metadata = data_row .metadata
425
419
assert len (metadata_fields ) == 3
426
420
assert len (metadata ) == 3
427
- assert [
428
- m [ "schemaId" ] for m in metadata_fields
429
- ].sort () == EXPECTED_METADATA_SCHEMA_IDS
421
+ assert [m [ "schemaId" ] for m in metadata_fields ]. sort () == constants [
422
+ "EXPECTED_METADATA_SCHEMA_IDS"
423
+ ].sort ()
430
424
for m in metadata :
431
425
assert mdo ._parse_upsert (m )
432
426
433
427
434
- def test_create_data_row_with_invalid_metadata (dataset , image_url ):
435
- fields = make_metadata_fields ()
428
+ def test_create_data_row_with_invalid_metadata (
429
+ dataset , image_url , constants , make_metadata_fields
430
+ ):
431
+ fields = make_metadata_fields
436
432
# make the payload invalid by providing the same schema id more than once
437
433
fields .append (
438
- DataRowMetadataField (schema_id = TEXT_SCHEMA_ID , value = "some msg" )
434
+ DataRowMetadataField (
435
+ schema_id = constants ["TEXT_SCHEMA_ID" ], value = "some msg"
436
+ )
439
437
)
440
438
441
439
with pytest .raises (ResourceCreationError ):
442
440
dataset .create_data_row (row_data = image_url , metadata_fields = fields )
443
441
444
442
445
- def test_create_data_rows_with_metadata (mdo , dataset , image_url ):
443
+ def test_create_data_rows_with_metadata (
444
+ mdo ,
445
+ dataset ,
446
+ image_url ,
447
+ constants ,
448
+ make_metadata_fields ,
449
+ make_metadata_fields_dict ,
450
+ ):
446
451
client = dataset .client
447
452
assert len (list (dataset .data_rows ())) == 0
448
453
@@ -451,22 +456,22 @@ def test_create_data_rows_with_metadata(mdo, dataset, image_url):
451
456
{
452
457
DataRow .row_data : image_url ,
453
458
DataRow .external_id : "row1" ,
454
- DataRow .metadata_fields : make_metadata_fields () ,
459
+ DataRow .metadata_fields : make_metadata_fields ,
455
460
},
456
461
{
457
462
DataRow .row_data : image_url ,
458
463
DataRow .external_id : "row2" ,
459
- "metadata_fields" : make_metadata_fields () ,
464
+ "metadata_fields" : make_metadata_fields ,
460
465
},
461
466
{
462
467
DataRow .row_data : image_url ,
463
468
DataRow .external_id : "row3" ,
464
- DataRow .metadata_fields : make_metadata_fields_dict () ,
469
+ DataRow .metadata_fields : make_metadata_fields_dict ,
465
470
},
466
471
{
467
472
DataRow .row_data : image_url ,
468
473
DataRow .external_id : "row4" ,
469
- "metadata_fields" : make_metadata_fields_dict () ,
474
+ "metadata_fields" : make_metadata_fields_dict ,
470
475
},
471
476
]
472
477
)
@@ -488,9 +493,9 @@ def test_create_data_rows_with_metadata(mdo, dataset, image_url):
488
493
metadata = row .metadata
489
494
assert len (metadata_fields ) == 3
490
495
assert len (metadata ) == 3
491
- assert [
492
- m [ "schemaId" ] for m in metadata_fields
493
- ].sort () == EXPECTED_METADATA_SCHEMA_IDS
496
+ assert [m [ "schemaId" ] for m in metadata_fields ]. sort () == constants [
497
+ "EXPECTED_METADATA_SCHEMA_IDS"
498
+ ].sort ()
494
499
for m in metadata :
495
500
assert mdo ._parse_upsert (m )
496
501
@@ -505,14 +510,16 @@ def test_create_data_rows_with_metadata(mdo, dataset, image_url):
505
510
],
506
511
)
507
512
def test_create_data_rows_with_named_metadata_field_class (
508
- test_function , metadata_obj_type , mdo , dataset , image_url
513
+ test_function , metadata_obj_type , mdo , dataset , image_url , constants
509
514
):
510
515
row_with_metadata_field = {
511
516
DataRow .row_data : image_url ,
512
517
DataRow .external_id : "row1" ,
513
518
DataRow .metadata_fields : [
514
519
DataRowMetadataField (name = "split" , value = "test" ),
515
- DataRowMetadataField (name = CUSTOM_TEXT_SCHEMA_NAME , value = "hello" ),
520
+ DataRowMetadataField (
521
+ name = constants ["CUSTOM_TEXT_SCHEMA_NAME" ], value = "hello"
522
+ ),
516
523
],
517
524
}
518
525
@@ -521,7 +528,7 @@ def test_create_data_rows_with_named_metadata_field_class(
521
528
DataRow .external_id : "row2" ,
522
529
"metadata_fields" : [
523
530
{"name" : "split" , "value" : "test" },
524
- {"name" : CUSTOM_TEXT_SCHEMA_NAME , "value" : "hello" },
531
+ {"name" : constants [ " CUSTOM_TEXT_SCHEMA_NAME" ] , "value" : "hello" },
525
532
],
526
533
}
527
534
@@ -552,21 +559,26 @@ def create_data_row(data_rows):
552
559
assert len (created_rows [0 ].metadata ) == 2
553
560
554
561
metadata = created_rows [0 ].metadata
555
- assert metadata [0 ].schema_id == SPLIT_SCHEMA_ID
562
+ assert metadata [0 ].schema_id == constants [ " SPLIT_SCHEMA_ID" ]
556
563
assert metadata [0 ].name == "test"
557
564
assert metadata [0 ].value == mdo .reserved_by_name ["split" ]["test" ].uid
558
- assert metadata [1 ].name == CUSTOM_TEXT_SCHEMA_NAME
565
+ assert metadata [1 ].name == constants [ " CUSTOM_TEXT_SCHEMA_NAME" ]
559
566
assert metadata [1 ].value == "hello"
560
567
assert (
561
- metadata [1 ].schema_id == mdo .custom_by_name [CUSTOM_TEXT_SCHEMA_NAME ].uid
568
+ metadata [1 ].schema_id
569
+ == mdo .custom_by_name [constants ["CUSTOM_TEXT_SCHEMA_NAME" ]].uid
562
570
)
563
571
564
572
565
- def test_create_data_rows_with_invalid_metadata (dataset , image_url ):
566
- fields = make_metadata_fields ()
573
+ def test_create_data_rows_with_invalid_metadata (
574
+ dataset , image_url , constants , make_metadata_fields
575
+ ):
576
+ fields = make_metadata_fields
567
577
# make the payload invalid by providing the same schema id more than once
568
578
fields .append (
569
- DataRowMetadataField (schema_id = TEXT_SCHEMA_ID , value = "some msg" )
579
+ DataRowMetadataField (
580
+ schema_id = constants ["TEXT_SCHEMA_ID" ], value = "some msg"
581
+ )
570
582
)
571
583
572
584
task = dataset .create_data_rows (
@@ -577,13 +589,15 @@ def test_create_data_rows_with_invalid_metadata(dataset, image_url):
577
589
assert task .status == "COMPLETE"
578
590
assert len (task .failed_data_rows ) == 1
579
591
assert (
580
- f"A schemaId can only be specified once per DataRow : [{ TEXT_SCHEMA_ID } ]"
592
+ f"A schemaId can only be specified once per DataRow : [{ constants [ ' TEXT_SCHEMA_ID' ] } ]"
581
593
in task .failed_data_rows [0 ]["message" ]
582
594
)
583
595
584
596
585
- def test_create_data_rows_with_metadata_missing_value (dataset , image_url ):
586
- fields = make_metadata_fields ()
597
+ def test_create_data_rows_with_metadata_missing_value (
598
+ dataset , image_url , make_metadata_fields
599
+ ):
600
+ fields = make_metadata_fields
587
601
fields .append ({"schemaId" : "some schema id" })
588
602
589
603
with pytest .raises (ValueError ) as exc :
@@ -598,8 +612,10 @@ def test_create_data_rows_with_metadata_missing_value(dataset, image_url):
598
612
)
599
613
600
614
601
- def test_create_data_rows_with_metadata_missing_schema_id (dataset , image_url ):
602
- fields = make_metadata_fields ()
615
+ def test_create_data_rows_with_metadata_missing_schema_id (
616
+ dataset , image_url , make_metadata_fields
617
+ ):
618
+ fields = make_metadata_fields
603
619
fields .append ({"value" : "some value" })
604
620
605
621
with pytest .raises (ValueError ) as exc :
@@ -614,8 +630,10 @@ def test_create_data_rows_with_metadata_missing_schema_id(dataset, image_url):
614
630
)
615
631
616
632
617
- def test_create_data_rows_with_metadata_wrong_type (dataset , image_url ):
618
- fields = make_metadata_fields ()
633
+ def test_create_data_rows_with_metadata_wrong_type (
634
+ dataset , image_url , make_metadata_fields
635
+ ):
636
+ fields = make_metadata_fields
619
637
fields .append ("Neither DataRowMetadataField or dict" )
620
638
621
639
with pytest .raises (ValueError ) as exc :
@@ -899,7 +917,11 @@ def test_does_not_update_not_provided_attachment_fields(data_row):
899
917
assert attachment .attachment_type == "RAW_TEXT"
900
918
901
919
902
- def test_create_data_rows_result (client , dataset , image_url ):
920
+ def test_create_data_rows_result (
921
+ client ,
922
+ dataset ,
923
+ image_url ,
924
+ ):
903
925
task = dataset .create_data_rows (
904
926
[
905
927
{
@@ -918,12 +940,14 @@ def test_create_data_rows_result(client, dataset, image_url):
918
940
client .get_data_row (result ["id" ])
919
941
920
942
921
- def test_create_data_rows_local_file (dataset , sample_image ):
943
+ def test_create_data_rows_local_file (
944
+ dataset , sample_image , make_metadata_fields
945
+ ):
922
946
task = dataset .create_data_rows (
923
947
[
924
948
{
925
949
DataRow .row_data : sample_image ,
926
- DataRow .metadata_fields : make_metadata_fields () ,
950
+ DataRow .metadata_fields : make_metadata_fields ,
927
951
}
928
952
]
929
953
)
0 commit comments