Skip to content

Commit c6fec92

Browse files
author
Val Brodsky
committed
Dealing with consts in tests
1 parent f1b3050 commit c6fec92

File tree

4 files changed

+96
-67
lines changed

4 files changed

+96
-67
lines changed

libs/labelbox/tests/integration/conftest.py

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,6 @@
77
from typing import Type
88

99
import pytest
10-
from constants import (
11-
CAPTURE_DT_SCHEMA_ID,
12-
SPLIT_SCHEMA_ID,
13-
TEST_SPLIT_ID,
14-
TEXT_SCHEMA_ID,
15-
)
1610

1711
from labelbox import (
1812
Classification,
@@ -32,6 +26,30 @@
3226
from labelbox.schema.user import User
3327

3428

29+
@pytest.fixture
30+
def constants():
31+
SPLIT_SCHEMA_ID = "cko8sbczn0002h2dkdaxb5kal"
32+
TEST_SPLIT_ID = "cko8scbz70005h2dkastwhgqt"
33+
TEXT_SCHEMA_ID = "cko8s9r5v0001h2dk9elqdidh"
34+
CAPTURE_DT_SCHEMA_ID = "cko8sdzv70006h2dk8jg64zvb"
35+
EXPECTED_METADATA_SCHEMA_IDS = [
36+
SPLIT_SCHEMA_ID,
37+
TEST_SPLIT_ID,
38+
TEXT_SCHEMA_ID,
39+
CAPTURE_DT_SCHEMA_ID,
40+
]
41+
CUSTOM_TEXT_SCHEMA_NAME = "custom_text"
42+
43+
return {
44+
"SPLIT_SCHEMA_ID": SPLIT_SCHEMA_ID,
45+
"TEST_SPLIT_ID": TEST_SPLIT_ID,
46+
"TEXT_SCHEMA_ID": TEXT_SCHEMA_ID,
47+
"CAPTURE_DT_SCHEMA_ID": CAPTURE_DT_SCHEMA_ID,
48+
"EXPECTED_METADATA_SCHEMA_IDS": EXPECTED_METADATA_SCHEMA_IDS,
49+
"CUSTOM_TEXT_SCHEMA_NAME": CUSTOM_TEXT_SCHEMA_NAME,
50+
}
51+
52+
3553
@pytest.fixture
3654
def project_based_user(client, rand_gen):
3755
email = rand_gen(str)
@@ -831,13 +849,18 @@ def print_perf_summary():
831849

832850

833851
@pytest.fixture
834-
def make_metadata_fields():
852+
def make_metadata_fields(constants):
835853
msg = "A message"
836854
time = datetime.now(timezone.utc)
837855

838856
fields = [
839-
DataRowMetadataField(schema_id=SPLIT_SCHEMA_ID, value=TEST_SPLIT_ID),
840-
DataRowMetadataField(schema_id=CAPTURE_DT_SCHEMA_ID, value=time),
841-
DataRowMetadataField(schema_id=TEXT_SCHEMA_ID, value=msg),
857+
DataRowMetadataField(
858+
schema_id=constants["SPLIT_SCHEMA_ID"],
859+
value=constants["TEST_SPLIT_ID"],
860+
),
861+
DataRowMetadataField(
862+
schema_id=constants["CAPTURE_DT_SCHEMA_ID"], value=time
863+
),
864+
DataRowMetadataField(schema_id=constants["TEXT_SCHEMA_ID"], value=msg),
842865
]
843866
return fields

libs/labelbox/tests/integration/constants.py

Lines changed: 0 additions & 11 deletions
This file was deleted.

libs/labelbox/tests/integration/test_data_rows.py

Lines changed: 59 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,12 @@
11
import json
22
import os
33
import uuid
4-
from datetime import datetime
4+
from datetime import datetime, timezone
55
from tempfile import NamedTemporaryFile
66
from unittest.mock import patch
77

88
import pytest
99
import requests
10-
from constants import (
11-
CAPTURE_DT_SCHEMA_ID,
12-
CUSTOM_TEXT_SCHEMA_NAME,
13-
EXPECTED_METADATA_SCHEMA_IDS,
14-
SPLIT_SCHEMA_ID,
15-
TEST_SPLIT_ID,
16-
TEXT_SCHEMA_ID,
17-
)
1810

1911
from labelbox import AssetAttachment, DataRow
2012
from labelbox.exceptions import (
@@ -33,10 +25,13 @@
3325
@pytest.fixture
3426
def mdo(
3527
client,
28+
constants,
3629
):
3730
mdo = client.get_data_row_metadata_ontology()
3831
try:
39-
mdo.create_schema(CUSTOM_TEXT_SCHEMA_NAME, DataRowMetadataKind.string)
32+
mdo.create_schema(
33+
constants["CUSTOM_TEXT_SCHEMA_NAME"], DataRowMetadataKind.string
34+
)
4035
except MalformedQueryException:
4136
# Do nothing if already exists
4237
pass
@@ -91,14 +86,18 @@ def tile_content():
9186
}
9287

9388

94-
def make_metadata_fields_dict():
89+
@pytest.fixture
90+
def make_metadata_fields_dict(constants):
9591
msg = "A message"
96-
time = datetime.utcnow()
92+
time = datetime.now(timezone.utc)
9793

9894
fields = [
99-
{"schema_id": SPLIT_SCHEMA_ID, "value": TEST_SPLIT_ID},
100-
{"schema_id": CAPTURE_DT_SCHEMA_ID, "value": time},
101-
{"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},
102101
]
103102
return fields
104103

@@ -362,7 +361,12 @@ def test_create_data_row_with_invalid_input(dataset, image_url):
362361

363362

364363
def test_create_data_row_with_metadata(
365-
mdo, dataset, image_url, make_metadata_fields
364+
mdo,
365+
dataset,
366+
image_url,
367+
make_metadata_fields,
368+
constants,
369+
make_metadata_fields_dict,
366370
):
367371
client = dataset.client
368372
assert len(list(dataset.data_rows())) == 0
@@ -384,19 +388,21 @@ def test_create_data_row_with_metadata(
384388
metadata = data_row.metadata
385389
assert len(metadata_fields) == 3
386390
assert len(metadata) == 3
387-
assert [
388-
m["schemaId"] for m in metadata_fields
389-
].sort() == EXPECTED_METADATA_SCHEMA_IDS.sort()
391+
assert [m["schemaId"] for m in metadata_fields].sort() == constants[
392+
"EXPECTED_METADATA_SCHEMA_IDS"
393+
].sort()
390394
for m in metadata:
391395
assert mdo._parse_upsert(m)
392396

393397

394-
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+
):
395401
client = dataset.client
396402
assert len(list(dataset.data_rows())) == 0
397403

398404
data_row = dataset.create_data_row(
399-
row_data=image_url, metadata_fields=make_metadata_fields_dict()
405+
row_data=image_url, metadata_fields=make_metadata_fields_dict
400406
)
401407

402408
assert len(list(dataset.data_rows())) == 1
@@ -412,28 +418,35 @@ def test_create_data_row_with_metadata_dict(mdo, dataset, image_url):
412418
metadata = data_row.metadata
413419
assert len(metadata_fields) == 3
414420
assert len(metadata) == 3
415-
assert [
416-
m["schemaId"] for m in metadata_fields
417-
].sort() == EXPECTED_METADATA_SCHEMA_IDS.sort()
421+
assert [m["schemaId"] for m in metadata_fields].sort() == constants[
422+
"EXPECTED_METADATA_SCHEMA_IDS"
423+
].sort()
418424
for m in metadata:
419425
assert mdo._parse_upsert(m)
420426

421427

422428
def test_create_data_row_with_invalid_metadata(
423-
dataset, image_url, make_metadata_fields
429+
dataset, image_url, constants, make_metadata_fields
424430
):
425431
fields = make_metadata_fields
426432
# make the payload invalid by providing the same schema id more than once
427433
fields.append(
428-
DataRowMetadataField(schema_id=TEXT_SCHEMA_ID, value="some msg")
434+
DataRowMetadataField(
435+
schema_id=constants["TEXT_SCHEMA_ID"], value="some msg"
436+
)
429437
)
430438

431439
with pytest.raises(ResourceCreationError):
432440
dataset.create_data_row(row_data=image_url, metadata_fields=fields)
433441

434442

435443
def test_create_data_rows_with_metadata(
436-
mdo, dataset, image_url, make_metadata_fields
444+
mdo,
445+
dataset,
446+
image_url,
447+
constants,
448+
make_metadata_fields,
449+
make_metadata_fields_dict,
437450
):
438451
client = dataset.client
439452
assert len(list(dataset.data_rows())) == 0
@@ -453,12 +466,12 @@ def test_create_data_rows_with_metadata(
453466
{
454467
DataRow.row_data: image_url,
455468
DataRow.external_id: "row3",
456-
DataRow.metadata_fields: make_metadata_fields_dict(),
469+
DataRow.metadata_fields: make_metadata_fields_dict,
457470
},
458471
{
459472
DataRow.row_data: image_url,
460473
DataRow.external_id: "row4",
461-
"metadata_fields": make_metadata_fields_dict(),
474+
"metadata_fields": make_metadata_fields_dict,
462475
},
463476
]
464477
)
@@ -480,9 +493,9 @@ def test_create_data_rows_with_metadata(
480493
metadata = row.metadata
481494
assert len(metadata_fields) == 3
482495
assert len(metadata) == 3
483-
assert [
484-
m["schemaId"] for m in metadata_fields
485-
].sort() == EXPECTED_METADATA_SCHEMA_IDS.sort()
496+
assert [m["schemaId"] for m in metadata_fields].sort() == constants[
497+
"EXPECTED_METADATA_SCHEMA_IDS"
498+
].sort()
486499
for m in metadata:
487500
assert mdo._parse_upsert(m)
488501

@@ -499,14 +512,16 @@ def test_create_data_rows_with_metadata(
499512
],
500513
)
501514
def test_create_data_rows_with_named_metadata_field_class(
502-
test_function, metadata_obj_type, mdo, dataset, image_url
515+
test_function, metadata_obj_type, mdo, dataset, image_url, constants
503516
):
504517
row_with_metadata_field = {
505518
DataRow.row_data: image_url,
506519
DataRow.external_id: "row1",
507520
DataRow.metadata_fields: [
508521
DataRowMetadataField(name="split", value="test"),
509-
DataRowMetadataField(name=CUSTOM_TEXT_SCHEMA_NAME, value="hello"),
522+
DataRowMetadataField(
523+
name=constants["CUSTOM_TEXT_SCHEMA_NAME"], value="hello"
524+
),
510525
],
511526
}
512527

@@ -515,7 +530,7 @@ def test_create_data_rows_with_named_metadata_field_class(
515530
DataRow.external_id: "row2",
516531
"metadata_fields": [
517532
{"name": "split", "value": "test"},
518-
{"name": CUSTOM_TEXT_SCHEMA_NAME, "value": "hello"},
533+
{"name": constants["CUSTOM_TEXT_SCHEMA_NAME"], "value": "hello"},
519534
],
520535
}
521536

@@ -547,23 +562,26 @@ def create_data_row(data_rows):
547562
assert len(created_rows[0].metadata) == 2
548563

549564
metadata = created_rows[0].metadata
550-
assert metadata[0].schema_id == SPLIT_SCHEMA_ID
565+
assert metadata[0].schema_id == constants["SPLIT_SCHEMA_ID"]
551566
assert metadata[0].name == "test"
552567
assert metadata[0].value == mdo.reserved_by_name["split"]["test"].uid
553-
assert metadata[1].name == CUSTOM_TEXT_SCHEMA_NAME
568+
assert metadata[1].name == constants["CUSTOM_TEXT_SCHEMA_NAME"]
554569
assert metadata[1].value == "hello"
555570
assert (
556-
metadata[1].schema_id == mdo.custom_by_name[CUSTOM_TEXT_SCHEMA_NAME].uid
571+
metadata[1].schema_id
572+
== mdo.custom_by_name[constants["CUSTOM_TEXT_SCHEMA_NAME"]].uid
557573
)
558574

559575

560576
def test_create_data_rows_with_invalid_metadata(
561-
dataset, image_url, make_metadata_fields
577+
dataset, image_url, constants, make_metadata_fields
562578
):
563579
fields = make_metadata_fields
564580
# make the payload invalid by providing the same schema id more than once
565581
fields.append(
566-
DataRowMetadataField(schema_id=TEXT_SCHEMA_ID, value="some msg")
582+
DataRowMetadataField(
583+
schema_id=constants["TEXT_SCHEMA_ID"], value="some msg"
584+
)
567585
)
568586

569587
task = dataset.create_data_rows(
@@ -574,7 +592,7 @@ def test_create_data_rows_with_invalid_metadata(
574592
assert task.status == "COMPLETE"
575593
assert len(task.failed_data_rows) == 1
576594
assert (
577-
f"A schemaId can only be specified once per DataRow : [{TEXT_SCHEMA_ID}]"
595+
f"A schemaId can only be specified once per DataRow : [{constants['TEXT_SCHEMA_ID']}]"
578596
in task.failed_data_rows[0]["message"]
579597
)
580598

libs/labelbox/tests/integration/test_mmc_data_rows.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
import random
33

44
import pytest
5-
from constants import EXPECTED_METADATA_SCHEMA_IDS
65

76

87
@pytest.fixture
@@ -35,7 +34,7 @@ def mmc_data_row(dataset, make_metadata_fields, embedding):
3534
data_row.delete()
3635

3736

38-
def test_mmc(mmc_data_row, embedding):
37+
def test_mmc(mmc_data_row, embedding, constants):
3938
data_row = mmc_data_row
4039
assert json.loads(data_row.row_data) == {
4140
"type": "application/vnd.labelbox.conversational.model-chat-evaluation",
@@ -49,9 +48,9 @@ def test_mmc(mmc_data_row, embedding):
4948
metadata = data_row.metadata
5049
assert len(metadata_fields) == 3
5150
assert len(metadata) == 3
52-
assert [
53-
m["schemaId"] for m in metadata_fields
54-
].sort() == EXPECTED_METADATA_SCHEMA_IDS.sort()
51+
assert [m["schemaId"] for m in metadata_fields].sort() == constants[
52+
"EXPECTED_METADATA_SCHEMA_IDS"
53+
].sort()
5554

5655
attachments = list(data_row.attachments())
5756
assert len(attachments) == 1

0 commit comments

Comments
 (0)