Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions cuenca_validations/types/queries.py
Original file line number Diff line number Diff line change
Expand Up @@ -154,9 +154,11 @@ class WalletTransactionQuery(QueryParams):


class UserQuery(QueryParams):
ids: Optional[list[str]] = Field(default=None, max_length=MAX_PAGE_SIZE)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Este va en QueryParams para que sea comun a todos.

phone_number: Optional[str] = None
email_address: Optional[EmailStr] = None
status: Optional[UserStatus] = None
is_blocked: Optional[bool] = None
identity_uri: Optional[str] = None
has_curp_document: Optional[bool] = None
clabe: Optional[Clabe] = None
Expand Down
2 changes: 1 addition & 1 deletion cuenca_validations/version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = '2.1.35'
__version__ = '2.1.35.dev1'
28 changes: 28 additions & 0 deletions tests/test_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,34 @@ def test_user_query_rejects_invalid(field, value):
UserQuery(**{field: value})


def test_user_query_accepts_ids_and_is_blocked():
query = UserQuery(ids=['US1', 'US2'], is_blocked=True)
assert query.ids == ['US1', 'US2']
assert query.is_blocked is True
dumped = query.model_dump(exclude_none=True)
assert dumped['ids'] == ['US1', 'US2']
assert dumped['is_blocked'] is True
assert isinstance(dumped['ids'], list)


def test_user_query_rejects_ids_over_limit():
with pytest.raises(ValidationError):
UserQuery(ids=[f'US{i}' for i in range(101)])


def test_user_query_ids_empty_list_ok():
query = UserQuery(ids=[])
assert query.ids == []
assert 'ids' in query.model_dump(exclude_none=True)


def test_user_query_ids_none_excluded_from_dump():
query = UserQuery()
dumped = query.model_dump(exclude_none=True)
assert 'ids' not in dumped
assert 'is_blocked' not in dumped


def test_exclude_none_in_dict():
request = ApiKeyUpdateRequest(user_id='US123')
assert request.model_dump() == dict(user_id='US123')
Expand Down
Loading