Skip to content

Commit da4f611

Browse files
committed
fix: ref/value consistency for root complex attributes
1 parent cc27a93 commit da4f611

3 files changed

Lines changed: 19 additions & 0 deletions

File tree

doc/changelog.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
Changelog
22
=========
33

4+
[unreleased]
5+
------------
6+
7+
Fixed
8+
^^^^^
9+
- Fix ``ref``/``value`` consistency for root complex attributes (e.g. standalone ``GroupMember``).
10+
411
[0.2.7] - 2026-04-02
512
--------------------
613

scim2_tester/filling.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,7 @@ def fix_reference_values(obj: BaseModel) -> None:
187187
``ref`` and ``value`` attributes, ``value`` matches the last segment
188188
of the ``ref`` URL.
189189
"""
190+
_fix_ref_value(obj)
190191
for field_name in type(obj).model_fields:
191192
child = getattr(obj, field_name, None)
192193
if child is None:

tests/test_filling.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,17 @@ def test_fix_ref_value_on_object_with_ref_and_value():
332332
assert manager.value == "abc123"
333333

334334

335+
def test_fix_reference_values_on_root_complex_attribute():
336+
"""Ensures fix_reference_values fixes ref/value on the root object itself."""
337+
member = Group.Members(
338+
ref="http://example.com/Users/real-user-id",
339+
value="random-wrong-value",
340+
)
341+
fix_reference_values(member)
342+
343+
assert member.value == "real-user-id"
344+
345+
335346
def test_fix_reference_values_on_list_of_members():
336347
"""Ensures fix_reference_values fixes ref/value in list attributes."""
337348
group = Group(display_name="test")

0 commit comments

Comments
 (0)