cuenca-validations 2.1.36.dev0__tar.gz → 2.1.36.dev1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/PKG-INFO +1 -1
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/types/__init__.py +2 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/types/requests.py +15 -0
- cuenca_validations-2.1.36.dev1/cuenca_validations/version.py +1 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations.egg-info/PKG-INFO +1 -1
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/tests/test_requests.py +29 -0
- cuenca_validations-2.1.36.dev0/cuenca_validations/version.py +0 -1
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/LICENSE +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/README.md +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/__init__.py +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/card_bins.py +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/errors.py +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/py.typed +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/types/card.py +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/types/enums.py +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/types/files.py +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/types/general.py +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/types/helpers.py +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/types/identities.py +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/types/morals.py +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/types/queries.py +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/typing.py +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/validators.py +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations.egg-info/SOURCES.txt +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations.egg-info/dependency_links.txt +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations.egg-info/requires.txt +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations.egg-info/top_level.txt +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/setup.cfg +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/setup.py +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/tests/__init__.py +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/tests/test_card.py +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/tests/test_errors.py +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/tests/test_helpers.py +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/tests/test_statement.py +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/tests/test_types.py +0 -0
- {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/tests/test_validators.py +0 -0
|
@@ -95,6 +95,7 @@ __all__ = [
|
|
|
95
95
|
'TransferNetwork',
|
|
96
96
|
'TransferQuery',
|
|
97
97
|
'TransferRequest',
|
|
98
|
+
'UpdateTransferRequest',
|
|
98
99
|
'UserCardNotification',
|
|
99
100
|
'UserCredentialRequest',
|
|
100
101
|
'UserCredentialUpdateRequest',
|
|
@@ -251,6 +252,7 @@ from .requests import (
|
|
|
251
252
|
StrictTransferRequest,
|
|
252
253
|
TOSRequest,
|
|
253
254
|
TransferRequest,
|
|
255
|
+
UpdateTransferRequest,
|
|
254
256
|
UserCredentialRequest,
|
|
255
257
|
UserCredentialUpdateRequest,
|
|
256
258
|
UserListsRequest,
|
|
@@ -46,6 +46,7 @@ from ..types.enums import (
|
|
|
46
46
|
State,
|
|
47
47
|
TermsOfService,
|
|
48
48
|
TrackDataMethod,
|
|
49
|
+
TransactionStatus,
|
|
49
50
|
TransactionTokenValidationStatus,
|
|
50
51
|
UserCardNotification,
|
|
51
52
|
UserStatus,
|
|
@@ -155,6 +156,20 @@ class StrictTransferRequest(BaseTransferRequest):
|
|
|
155
156
|
)
|
|
156
157
|
|
|
157
158
|
|
|
159
|
+
class UpdateTransferRequest(BaseRequest):
|
|
160
|
+
status: TransactionStatus
|
|
161
|
+
|
|
162
|
+
@field_validator('status')
|
|
163
|
+
@classmethod
|
|
164
|
+
def validate_status(cls, status: TransactionStatus) -> TransactionStatus:
|
|
165
|
+
if status not in (
|
|
166
|
+
TransactionStatus.succeeded,
|
|
167
|
+
TransactionStatus.failed,
|
|
168
|
+
):
|
|
169
|
+
raise ValueError('status must be succeeded or failed')
|
|
170
|
+
return status
|
|
171
|
+
|
|
172
|
+
|
|
158
173
|
class CardUpdateRequest(BaseRequest):
|
|
159
174
|
status: Optional[CardStatus] = None
|
|
160
175
|
pin_block: Optional[str] = None
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '2.1.36.dev1'
|
|
@@ -5,6 +5,7 @@ from pydantic_extra_types.phone_numbers import PhoneNumber
|
|
|
5
5
|
from cuenca_validations.types.enums import VerificationType
|
|
6
6
|
from cuenca_validations.types.requests import (
|
|
7
7
|
PasswordResetRequest,
|
|
8
|
+
UpdateTransferRequest,
|
|
8
9
|
UserTOSAgreementRequest,
|
|
9
10
|
UserUpdateRequest,
|
|
10
11
|
VerificationRequest,
|
|
@@ -94,3 +95,31 @@ def test_user_update_request_normalizes_email() -> None:
|
|
|
94
95
|
def test_user_update_request_normalizes_phone() -> None:
|
|
95
96
|
req = UserUpdateRequest(phone_number=PhoneNumber('+116504401222'))
|
|
96
97
|
assert req.phone_number == '+16504401222'
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
@pytest.mark.parametrize('status', ['succeeded', 'failed'])
|
|
101
|
+
def test_update_transfer_request_valid_status(status: str) -> None:
|
|
102
|
+
req = UpdateTransferRequest.model_validate({'status': status})
|
|
103
|
+
assert req.status == status
|
|
104
|
+
assert req.model_dump() == {'status': status}
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
@pytest.mark.parametrize('status', ['created', 'submitted', 'in_review'])
|
|
108
|
+
def test_update_transfer_request_invalid_status(status: str) -> None:
|
|
109
|
+
with pytest.raises(ValidationError) as ex:
|
|
110
|
+
UpdateTransferRequest.model_validate({'status': status})
|
|
111
|
+
assert 'status' in str(ex.value)
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
def test_update_transfer_request_missing_status() -> None:
|
|
115
|
+
with pytest.raises(ValidationError) as ex:
|
|
116
|
+
UpdateTransferRequest.model_validate({})
|
|
117
|
+
assert 'status' in str(ex.value)
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
def test_update_transfer_request_forbids_extra() -> None:
|
|
121
|
+
with pytest.raises(ValidationError) as ex:
|
|
122
|
+
UpdateTransferRequest.model_validate(
|
|
123
|
+
{'status': 'succeeded', 'foo': 'bar'}
|
|
124
|
+
)
|
|
125
|
+
assert 'Extra inputs are not permitted' in str(ex.value)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '2.1.36.dev0'
|
|
File without changes
|
|
File without changes
|
{cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/__init__.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/card_bins.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/errors.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/py.typed
RENAMED
|
File without changes
|
{cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/types/card.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/types/enums.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/types/files.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/types/morals.py
RENAMED
|
File without changes
|
|
File without changes
|
{cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/typing.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/validators.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|