Skip to content

Commit f09fe19

Browse files
committed
Add data test
1 parent ba0251c commit f09fe19

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

libs/labelbox/tests/data/annotation_import/test_relationships.py

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,3 +337,72 @@ def test_classification_relationship_restrictions():
337337
data={"global_key": "test_key"}, annotations=[relationship]
338338
)
339339
list(NDJsonConverter.serialize([label]))
340+
341+
342+
def test_relationship_readonly_default_none():
343+
"""Test that relationship readonly field defaults to None when not specified."""
344+
source = ObjectAnnotation(
345+
name="e1",
346+
value=TextEntity(start=10, end=12),
347+
)
348+
target = ObjectAnnotation(
349+
name="e2",
350+
value=TextEntity(start=30, end=35),
351+
)
352+
353+
relationship = RelationshipAnnotation(
354+
name="rel",
355+
value=Relationship(
356+
source=source,
357+
target=target,
358+
type=Relationship.Type.UNIDIRECTIONAL,
359+
),
360+
)
361+
assert relationship.value.readonly is None
362+
363+
364+
def test_relationship_readonly_explicit_false():
365+
"""Test that relationship readonly field can be explicitly set to False."""
366+
source = ObjectAnnotation(
367+
name="e1",
368+
value=TextEntity(start=10, end=12),
369+
)
370+
target = ObjectAnnotation(
371+
name="e2",
372+
value=TextEntity(start=30, end=35),
373+
)
374+
375+
relationship = RelationshipAnnotation(
376+
name="rel",
377+
value=Relationship(
378+
source=source,
379+
target=target,
380+
type=Relationship.Type.UNIDIRECTIONAL,
381+
readonly=False,
382+
),
383+
)
384+
assert relationship.value.readonly is False
385+
386+
387+
def test_relationship_readonly_explicit_true():
388+
"""Test that setting relationship readonly=True triggers a warning."""
389+
source = ObjectAnnotation(
390+
name="e1",
391+
value=TextEntity(start=10, end=12),
392+
)
393+
target = ObjectAnnotation(
394+
name="e2",
395+
value=TextEntity(start=30, end=35),
396+
)
397+
398+
with pytest.warns(UserWarning, match="Creating a relationship with readonly=True is in beta.*"):
399+
relationship = RelationshipAnnotation(
400+
name="rel",
401+
value=Relationship(
402+
source=source,
403+
target=target,
404+
type=Relationship.Type.UNIDIRECTIONAL,
405+
readonly=True,
406+
),
407+
)
408+
assert relationship.value.readonly is True

0 commit comments

Comments
 (0)