cuenca-validations 2.1.37__tar.gz → 2.1.38.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.37 → cuenca_validations-2.1.38.dev1}/PKG-INFO +1 -1
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/types/__init__.py +2 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/types/enums.py +7 -1
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/types/requests.py +12 -1
- cuenca_validations-2.1.38.dev1/cuenca_validations/version.py +1 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations.egg-info/PKG-INFO +1 -1
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/tests/test_types.py +61 -23
- cuenca_validations-2.1.37/cuenca_validations/version.py +0 -1
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/LICENSE +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/README.md +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/__init__.py +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/card_bins.py +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/errors.py +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/py.typed +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/types/card.py +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/types/files.py +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/types/general.py +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/types/helpers.py +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/types/identities.py +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/types/morals.py +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/types/queries.py +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/typing.py +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/validators.py +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations.egg-info/SOURCES.txt +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations.egg-info/dependency_links.txt +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations.egg-info/requires.txt +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations.egg-info/top_level.txt +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/setup.cfg +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/setup.py +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/tests/__init__.py +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/tests/test_card.py +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/tests/test_errors.py +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/tests/test_helpers.py +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/tests/test_requests.py +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/tests/test_statement.py +0 -0
- {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/tests/test_validators.py +0 -0
{cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/types/__init__.py
RENAMED
|
@@ -45,6 +45,7 @@ __all__ = [
|
|
|
45
45
|
'FileRequest',
|
|
46
46
|
'FileUploadRequest',
|
|
47
47
|
'FraudFundsTransferRequest',
|
|
48
|
+
'FraudFundsTransferTipoPago',
|
|
48
49
|
'Gender',
|
|
49
50
|
'IncomeType',
|
|
50
51
|
'IssuerNetwork',
|
|
@@ -145,6 +146,7 @@ from .enums import (
|
|
|
145
146
|
EventType,
|
|
146
147
|
FileExtension,
|
|
147
148
|
FileFormat,
|
|
149
|
+
FraudFundsTransferTipoPago,
|
|
148
150
|
Gender,
|
|
149
151
|
IncomeType,
|
|
150
152
|
IssuerNetwork,
|
{cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/types/enums.py
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from enum import Enum
|
|
1
|
+
from enum import Enum, IntEnum
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
class CardNetwork(str, Enum):
|
|
@@ -743,3 +743,9 @@ class RequiredAction(str, Enum):
|
|
|
743
743
|
level_up_required = 'level_up_required'
|
|
744
744
|
level_up_invitation = 'level_up_invitation'
|
|
745
745
|
fix_documents = 'fix_documents'
|
|
746
|
+
|
|
747
|
+
|
|
748
|
+
class FraudFundsTransferTipoPago(IntEnum):
|
|
749
|
+
participante_participante = 7
|
|
750
|
+
devolucion_especial_ordenes_aceptadas_acreditadas = 23
|
|
751
|
+
devolucion_extemporanea_especial_ordenes_acreditadas = 24
|
{cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/types/requests.py
RENAMED
|
@@ -29,6 +29,7 @@ from ..types.enums import (
|
|
|
29
29
|
Country,
|
|
30
30
|
EcommerceIndicator,
|
|
31
31
|
FileExtension,
|
|
32
|
+
FraudFundsTransferTipoPago,
|
|
32
33
|
Gender,
|
|
33
34
|
IncomeType,
|
|
34
35
|
IssuerNetwork,
|
|
@@ -326,10 +327,20 @@ class WalletTransactionRequest(BaseRequest):
|
|
|
326
327
|
|
|
327
328
|
class FraudFundsTransferRequest(BaseRequest):
|
|
328
329
|
user_id: NonEmptyStr
|
|
329
|
-
clabe: Clabe
|
|
330
|
+
clabe: Optional[Clabe] = None
|
|
331
|
+
bank_code: Optional[str] = None
|
|
332
|
+
tipo_pago: Optional[FraudFundsTransferTipoPago] = None
|
|
330
333
|
amount: Optional[StrictPositiveInt] = None
|
|
331
334
|
concepto: Optional[NonEmptyStr] = None
|
|
332
335
|
|
|
336
|
+
@model_validator(mode='after')
|
|
337
|
+
def validate_destination(self) -> 'FraudFundsTransferRequest':
|
|
338
|
+
if self.clabe is None and self.bank_code is None:
|
|
339
|
+
raise ValueError('clabe or bank_code required')
|
|
340
|
+
if self.bank_code is not None and self.tipo_pago is None:
|
|
341
|
+
raise ValueError('tipo_pago required when using bank_code')
|
|
342
|
+
return self
|
|
343
|
+
|
|
333
344
|
|
|
334
345
|
class FraudValidationRequest(BaseModel):
|
|
335
346
|
amount: StrictPositiveInt
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '2.1.38.dev1'
|
|
@@ -675,31 +675,69 @@ def test_bank_account_validation_clabe_request():
|
|
|
675
675
|
assert BankAccountValidationRequest(account_number='646180157098510917')
|
|
676
676
|
|
|
677
677
|
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
678
|
+
@pytest.mark.parametrize(
|
|
679
|
+
'data, expected_dump',
|
|
680
|
+
[
|
|
681
|
+
(
|
|
682
|
+
dict(
|
|
683
|
+
user_id='US123',
|
|
684
|
+
clabe='646180157098510917',
|
|
685
|
+
amount=10000,
|
|
686
|
+
concepto=' Devolución fraude ',
|
|
687
|
+
),
|
|
688
|
+
dict(
|
|
689
|
+
user_id='US123',
|
|
690
|
+
clabe='646180157098510917',
|
|
691
|
+
amount=10000,
|
|
692
|
+
concepto='Devolución fraude',
|
|
693
|
+
),
|
|
694
|
+
),
|
|
695
|
+
(
|
|
696
|
+
dict(user_id='US123', clabe='646180157098510917'),
|
|
697
|
+
dict(user_id='US123', clabe='646180157098510917'),
|
|
698
|
+
),
|
|
699
|
+
*[
|
|
700
|
+
(
|
|
701
|
+
dict(
|
|
702
|
+
user_id='US123',
|
|
703
|
+
bank_code='40012',
|
|
704
|
+
tipo_pago=tipo_pago,
|
|
705
|
+
amount=5000,
|
|
706
|
+
),
|
|
707
|
+
dict(
|
|
708
|
+
user_id='US123',
|
|
709
|
+
bank_code='40012',
|
|
710
|
+
tipo_pago=tipo_pago,
|
|
711
|
+
amount=5000,
|
|
712
|
+
),
|
|
713
|
+
)
|
|
714
|
+
for tipo_pago in (7, 23, 24)
|
|
715
|
+
],
|
|
716
|
+
],
|
|
717
|
+
)
|
|
718
|
+
def test_fraud_funds_transfer_request(data, expected_dump):
|
|
719
|
+
request = FraudFundsTransferRequest(**data)
|
|
720
|
+
assert request.model_dump() == expected_dump
|
|
693
721
|
|
|
694
|
-
request_full_balance = FraudFundsTransferRequest(
|
|
695
|
-
user_id='US123',
|
|
696
|
-
clabe='646180157098510917',
|
|
697
|
-
)
|
|
698
722
|
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
723
|
+
@pytest.mark.parametrize(
|
|
724
|
+
'data, expected_error',
|
|
725
|
+
[
|
|
726
|
+
(dict(user_id='US123'), 'clabe or bank_code required'),
|
|
727
|
+
(
|
|
728
|
+
dict(user_id='US123', bank_code='40012'),
|
|
729
|
+
'tipo_pago required when using bank_code',
|
|
730
|
+
),
|
|
731
|
+
(
|
|
732
|
+
dict(user_id='US123', bank_code='40012', tipo_pago=1),
|
|
733
|
+
'Input should be 7, 23 or 24',
|
|
734
|
+
),
|
|
735
|
+
],
|
|
736
|
+
)
|
|
737
|
+
def test_fraud_funds_transfer_request_invalid(data, expected_error):
|
|
738
|
+
with pytest.raises(ValidationError) as exc:
|
|
739
|
+
FraudFundsTransferRequest(**data)
|
|
740
|
+
assert expected_error in str(exc.value)
|
|
703
741
|
|
|
704
742
|
|
|
705
743
|
@pytest.mark.parametrize(
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '2.1.37'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/card_bins.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/types/card.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/types/files.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/types/general.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/types/helpers.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/types/identities.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/types/morals.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/types/queries.py
RENAMED
|
File without changes
|
|
File without changes
|
{cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/cuenca_validations/validators.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev1}/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
|