cuenca-validations 2.1.32.dev1__tar.gz → 2.1.32.dev3__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.32.dev1 → cuenca_validations-2.1.32.dev3}/PKG-INFO +1 -1
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations/types/requests.py +11 -19
- cuenca_validations-2.1.32.dev3/cuenca_validations/version.py +1 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations.egg-info/PKG-INFO +1 -1
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/tests/test_types.py +2 -11
- cuenca_validations-2.1.32.dev1/cuenca_validations/version.py +0 -1
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/LICENSE +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/README.md +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations/__init__.py +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations/card_bins.py +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations/errors.py +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations/py.typed +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations/types/__init__.py +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations/types/card.py +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations/types/enums.py +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations/types/files.py +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations/types/general.py +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations/types/helpers.py +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations/types/identities.py +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations/types/morals.py +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations/types/queries.py +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations/typing.py +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations/validators.py +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations.egg-info/SOURCES.txt +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations.egg-info/dependency_links.txt +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations.egg-info/requires.txt +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations.egg-info/top_level.txt +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/setup.cfg +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/setup.py +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/tests/__init__.py +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/tests/test_card.py +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/tests/test_errors.py +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/tests/test_helpers.py +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/tests/test_requests.py +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/tests/test_statement.py +0 -0
- {cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/tests/test_validators.py +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import datetime as dt
|
|
2
|
-
from typing import Annotated, Any, Literal, Optional,
|
|
2
|
+
from typing import Annotated, Any, Literal, Optional, Union
|
|
3
3
|
|
|
4
|
-
from clabe import Clabe
|
|
4
|
+
from clabe import Clabe
|
|
5
5
|
from pydantic import (
|
|
6
6
|
BaseModel,
|
|
7
7
|
ConfigDict,
|
|
@@ -313,17 +313,9 @@ class FraudFundsTransferRequest(BaseRequest):
|
|
|
313
313
|
user_id: NonEmptyStr
|
|
314
314
|
clabe: Clabe
|
|
315
315
|
concepto: NonEmptyStr
|
|
316
|
-
amount: StrictPositiveInt
|
|
317
|
-
reason: NonEmptyStr
|
|
318
|
-
request_id: NonEmptyStr
|
|
319
|
-
requested_by: NonEmptyStr | None = None
|
|
320
|
-
|
|
321
|
-
@field_validator('clabe', mode='before')
|
|
322
|
-
@classmethod
|
|
323
|
-
def validate_clabe_format(cls, clabe: str) -> str:
|
|
324
|
-
if not validate_clabe(clabe):
|
|
325
|
-
raise ValueError('La CLABE ingresada no es valida')
|
|
326
|
-
return clabe
|
|
316
|
+
amount: Optional[StrictPositiveInt] = None
|
|
317
|
+
reason: NonEmptyStr
|
|
318
|
+
request_id: NonEmptyStr
|
|
327
319
|
|
|
328
320
|
|
|
329
321
|
class FraudFundsTransferAcceptedResponse(BaseRequest):
|
|
@@ -339,15 +331,15 @@ class FraudFundsTransferResultEvent(BaseRequest):
|
|
|
339
331
|
]
|
|
340
332
|
request_id: NonEmptyStr
|
|
341
333
|
user_id: NonEmptyStr
|
|
342
|
-
transaction_id: NonEmptyStr
|
|
343
|
-
amount: StrictPositiveInt
|
|
344
|
-
clave_rastreo: NonEmptyStr
|
|
345
|
-
reason_code: NonEmptyStr
|
|
346
|
-
message: NonEmptyStr
|
|
334
|
+
transaction_id: Optional[NonEmptyStr] = None
|
|
335
|
+
amount: Optional[StrictPositiveInt] = None
|
|
336
|
+
clave_rastreo: Optional[NonEmptyStr] = None
|
|
337
|
+
reason_code: Optional[NonEmptyStr] = None
|
|
338
|
+
message: Optional[NonEmptyStr] = None
|
|
347
339
|
completed_at: dt.datetime
|
|
348
340
|
|
|
349
341
|
@model_validator(mode='after')
|
|
350
|
-
def validate_payload(self) ->
|
|
342
|
+
def validate_payload(self) -> 'FraudFundsTransferResultEvent':
|
|
351
343
|
if self.event_type == 'fraud_funds_transfer.succeeded':
|
|
352
344
|
required = {
|
|
353
345
|
'transaction_id': self.transaction_id,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '2.1.32.dev3'
|
|
@@ -645,6 +645,7 @@ def test_fraud_funds_transfer_models():
|
|
|
645
645
|
clabe='646180157098510917',
|
|
646
646
|
concepto=' fondos fraude ',
|
|
647
647
|
amount=100,
|
|
648
|
+
reason='fraud_report',
|
|
648
649
|
request_id='REQ123',
|
|
649
650
|
)
|
|
650
651
|
|
|
@@ -654,6 +655,7 @@ def test_fraud_funds_transfer_models():
|
|
|
654
655
|
'clabe': '646180157098510917',
|
|
655
656
|
'concepto': 'fondos fraude',
|
|
656
657
|
'amount': 100,
|
|
658
|
+
'reason': 'fraud_report',
|
|
657
659
|
'request_id': 'REQ123',
|
|
658
660
|
}
|
|
659
661
|
|
|
@@ -690,17 +692,6 @@ def test_fraud_funds_transfer_models():
|
|
|
690
692
|
assert failed_event.reason_code == 'insufficient_funds'
|
|
691
693
|
|
|
692
694
|
|
|
693
|
-
def test_fraud_funds_transfer_request_invalid_clabe():
|
|
694
|
-
with pytest.raises(ValidationError) as ex:
|
|
695
|
-
FraudFundsTransferRequest(
|
|
696
|
-
user_id='US123',
|
|
697
|
-
clabe='not-a-clabe',
|
|
698
|
-
concepto='fondos fraude',
|
|
699
|
-
)
|
|
700
|
-
|
|
701
|
-
assert 'La CLABE ingresada no es valida' in str(ex.value)
|
|
702
|
-
|
|
703
|
-
|
|
704
695
|
@pytest.mark.parametrize(
|
|
705
696
|
'event_type,expected_error',
|
|
706
697
|
[
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '2.1.32.dev1'
|
|
File without changes
|
|
File without changes
|
{cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations/__init__.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations/card_bins.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations/errors.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations/py.typed
RENAMED
|
File without changes
|
|
File without changes
|
{cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations/types/card.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations/types/enums.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations/types/files.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations/types/morals.py
RENAMED
|
File without changes
|
|
File without changes
|
{cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/cuenca_validations/typing.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.32.dev1 → cuenca_validations-2.1.32.dev3}/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
|