cuenca-validations 2.1.48.dev2__tar.gz → 2.1.49__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.48.dev2 → cuenca_validations-2.1.49}/PKG-INFO +1 -1
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/types/__init__.py +4 -2
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/types/enums.py +5 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/types/requests.py +25 -3
- cuenca_validations-2.1.49/cuenca_validations/version.py +1 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations.egg-info/PKG-INFO +1 -1
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/tests/test_requests.py +44 -0
- cuenca_validations-2.1.48.dev2/cuenca_validations/version.py +0 -1
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/LICENSE +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/README.md +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/__init__.py +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/card_bins.py +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/errors.py +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/py.typed +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/types/card.py +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/types/files.py +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/types/general.py +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/types/helpers.py +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/types/identities.py +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/types/morals.py +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/types/queries.py +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/typing.py +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/validators.py +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations.egg-info/SOURCES.txt +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations.egg-info/dependency_links.txt +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations.egg-info/requires.txt +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations.egg-info/top_level.txt +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/setup.cfg +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/setup.py +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/tests/__init__.py +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/tests/test_card.py +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/tests/test_errors.py +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/tests/test_helpers.py +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/tests/test_statement.py +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/tests/test_types.py +0 -0
- {cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/tests/test_validators.py +0 -0
{cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/types/__init__.py
RENAMED
|
@@ -83,7 +83,6 @@ __all__ = [
|
|
|
83
83
|
'Profession',
|
|
84
84
|
'QueryParams',
|
|
85
85
|
'ReferencedClabeRequest',
|
|
86
|
-
'RejectTransferOrderRequest',
|
|
87
86
|
'LegalRfc',
|
|
88
87
|
'Rfc',
|
|
89
88
|
'QuestionnairesRequest',
|
|
@@ -114,6 +113,8 @@ __all__ = [
|
|
|
114
113
|
'TransferOrderStatus',
|
|
115
114
|
'TransferQuery',
|
|
116
115
|
'TransferRequest',
|
|
116
|
+
'UpdateTransferOrderRequest',
|
|
117
|
+
'UpdateTransferOrderStatus',
|
|
117
118
|
'UpdateTransferRequest',
|
|
118
119
|
'UserCardNotification',
|
|
119
120
|
'UserCredentialRequest',
|
|
@@ -191,6 +192,7 @@ from .enums import (
|
|
|
191
192
|
TransactionStatus,
|
|
192
193
|
TransferNetwork,
|
|
193
194
|
TransferOrderStatus,
|
|
195
|
+
UpdateTransferOrderStatus,
|
|
194
196
|
UserCardNotification,
|
|
195
197
|
UserStatus,
|
|
196
198
|
UserType,
|
|
@@ -280,7 +282,6 @@ from .requests import (
|
|
|
280
282
|
PlatformRequest,
|
|
281
283
|
QuestionnairesRequest,
|
|
282
284
|
ReferencedClabeRequest,
|
|
283
|
-
RejectTransferOrderRequest,
|
|
284
285
|
SavingRequest,
|
|
285
286
|
SavingUpdateRequest,
|
|
286
287
|
SessionRequest,
|
|
@@ -289,6 +290,7 @@ from .requests import (
|
|
|
289
290
|
TransferOrderLineRequest,
|
|
290
291
|
TransferOrderRequest,
|
|
291
292
|
TransferRequest,
|
|
293
|
+
UpdateTransferOrderRequest,
|
|
292
294
|
UpdateTransferRequest,
|
|
293
295
|
UserCredentialRequest,
|
|
294
296
|
UserCredentialUpdateRequest,
|
{cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/types/requests.py
RENAMED
|
@@ -50,6 +50,7 @@ from ..types.enums import (
|
|
|
50
50
|
TrackDataMethod,
|
|
51
51
|
TransactionStatus,
|
|
52
52
|
TransactionTokenValidationStatus,
|
|
53
|
+
UpdateTransferOrderStatus,
|
|
53
54
|
UserCardNotification,
|
|
54
55
|
UserStatus,
|
|
55
56
|
VerificationStatus,
|
|
@@ -1068,11 +1069,32 @@ class TransferOrderRequest(BaseRequest):
|
|
|
1068
1069
|
return self
|
|
1069
1070
|
|
|
1070
1071
|
|
|
1071
|
-
class
|
|
1072
|
-
|
|
1072
|
+
class UpdateTransferOrderRequest(BaseRequest):
|
|
1073
|
+
status: UpdateTransferOrderStatus
|
|
1074
|
+
rejection_reason: Optional[str] = None
|
|
1073
1075
|
|
|
1074
1076
|
model_config = ConfigDict(
|
|
1075
1077
|
json_schema_extra={
|
|
1076
|
-
'
|
|
1078
|
+
'examples': [
|
|
1079
|
+
{'status': 'authorized'},
|
|
1080
|
+
{
|
|
1081
|
+
'status': 'rejected',
|
|
1082
|
+
'rejection_reason': 'Monto incorrecto',
|
|
1083
|
+
},
|
|
1084
|
+
]
|
|
1077
1085
|
},
|
|
1078
1086
|
)
|
|
1087
|
+
|
|
1088
|
+
@model_validator(mode='after')
|
|
1089
|
+
def validate_rejection_reason(self) -> 'UpdateTransferOrderRequest':
|
|
1090
|
+
if self.status is UpdateTransferOrderStatus.rejected:
|
|
1091
|
+
if (
|
|
1092
|
+
self.rejection_reason is None
|
|
1093
|
+
or not self.rejection_reason.strip()
|
|
1094
|
+
):
|
|
1095
|
+
raise ValueError('rejection_reason is required')
|
|
1096
|
+
elif self.rejection_reason is not None:
|
|
1097
|
+
raise ValueError(
|
|
1098
|
+
'rejection_reason is only allowed when status is rejected'
|
|
1099
|
+
)
|
|
1100
|
+
return self
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '2.1.49'
|
|
@@ -5,6 +5,7 @@ from pydantic_extra_types.phone_numbers import PhoneNumber
|
|
|
5
5
|
from cuenca_validations.types.enums import (
|
|
6
6
|
Country,
|
|
7
7
|
OperatorRole,
|
|
8
|
+
UpdateTransferOrderStatus,
|
|
8
9
|
VerificationType,
|
|
9
10
|
)
|
|
10
11
|
from cuenca_validations.types.queries import OperatorQuery
|
|
@@ -15,6 +16,7 @@ from cuenca_validations.types.requests import (
|
|
|
15
16
|
OperatorUpdateRequest,
|
|
16
17
|
PasswordResetRequest,
|
|
17
18
|
TransferOrderRequest,
|
|
19
|
+
UpdateTransferOrderRequest,
|
|
18
20
|
UpdateTransferRequest,
|
|
19
21
|
UserTOSAgreementRequest,
|
|
20
22
|
UserUpdateRequest,
|
|
@@ -259,3 +261,45 @@ def test_transfer_order_request_shape() -> None:
|
|
|
259
261
|
)
|
|
260
262
|
with pytest.raises(ValidationError):
|
|
261
263
|
TransferOrderRequest.model_validate({'idempotency_key': 'missing'})
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
@pytest.mark.parametrize(
|
|
267
|
+
'payload',
|
|
268
|
+
[
|
|
269
|
+
{'status': 'rejected'},
|
|
270
|
+
{'status': 'rejected', 'rejection_reason': ''},
|
|
271
|
+
{'status': 'rejected', 'rejection_reason': ' '},
|
|
272
|
+
],
|
|
273
|
+
)
|
|
274
|
+
def test_update_transfer_order_request_rejected_requires_reason(
|
|
275
|
+
payload: dict,
|
|
276
|
+
) -> None:
|
|
277
|
+
with pytest.raises(ValidationError, match='rejection_reason is required'):
|
|
278
|
+
UpdateTransferOrderRequest.model_validate(payload)
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
def test_update_transfer_order_request_authorized_forbids_reason() -> None:
|
|
282
|
+
with pytest.raises(
|
|
283
|
+
ValidationError,
|
|
284
|
+
match='rejection_reason is only allowed when status is rejected',
|
|
285
|
+
):
|
|
286
|
+
UpdateTransferOrderRequest.model_validate(
|
|
287
|
+
{'status': 'authorized', 'rejection_reason': 'no'}
|
|
288
|
+
)
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
@pytest.mark.parametrize(
|
|
292
|
+
'payload, status',
|
|
293
|
+
[
|
|
294
|
+
({'status': 'authorized'}, UpdateTransferOrderStatus.authorized),
|
|
295
|
+
(
|
|
296
|
+
{'status': 'rejected', 'rejection_reason': 'Monto incorrecto'},
|
|
297
|
+
UpdateTransferOrderStatus.rejected,
|
|
298
|
+
),
|
|
299
|
+
],
|
|
300
|
+
)
|
|
301
|
+
def test_update_transfer_order_request_valid(
|
|
302
|
+
payload: dict, status: UpdateTransferOrderStatus
|
|
303
|
+
) -> None:
|
|
304
|
+
req = UpdateTransferOrderRequest.model_validate(payload)
|
|
305
|
+
assert req.status is status
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '2.1.48.dev2'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/card_bins.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/types/card.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/types/files.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/types/general.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/types/helpers.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/types/identities.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/types/morals.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/types/queries.py
RENAMED
|
File without changes
|
|
File without changes
|
{cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations/validators.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.48.dev2 → cuenca_validations-2.1.49}/cuenca_validations.egg-info/SOURCES.txt
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
|