cuenca-validations 2.1.38.dev0__tar.gz → 2.1.38.dev2__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.
Files changed (36) hide show
  1. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/PKG-INFO +1 -1
  2. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/cuenca_validations/types/__init__.py +4 -0
  3. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/cuenca_validations/types/enums.py +7 -1
  4. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/cuenca_validations/types/general.py +14 -0
  5. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/cuenca_validations/types/requests.py +4 -2
  6. cuenca_validations-2.1.38.dev2/cuenca_validations/version.py +1 -0
  7. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/cuenca_validations.egg-info/PKG-INFO +1 -1
  8. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/tests/test_types.py +25 -14
  9. cuenca_validations-2.1.38.dev0/cuenca_validations/version.py +0 -1
  10. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/LICENSE +0 -0
  11. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/README.md +0 -0
  12. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/cuenca_validations/__init__.py +0 -0
  13. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/cuenca_validations/card_bins.py +0 -0
  14. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/cuenca_validations/errors.py +0 -0
  15. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/cuenca_validations/py.typed +0 -0
  16. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/cuenca_validations/types/card.py +0 -0
  17. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/cuenca_validations/types/files.py +0 -0
  18. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/cuenca_validations/types/helpers.py +0 -0
  19. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/cuenca_validations/types/identities.py +0 -0
  20. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/cuenca_validations/types/morals.py +0 -0
  21. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/cuenca_validations/types/queries.py +0 -0
  22. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/cuenca_validations/typing.py +0 -0
  23. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/cuenca_validations/validators.py +0 -0
  24. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/cuenca_validations.egg-info/SOURCES.txt +0 -0
  25. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/cuenca_validations.egg-info/dependency_links.txt +0 -0
  26. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/cuenca_validations.egg-info/requires.txt +0 -0
  27. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/cuenca_validations.egg-info/top_level.txt +0 -0
  28. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/setup.cfg +0 -0
  29. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/setup.py +0 -0
  30. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/tests/__init__.py +0 -0
  31. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/tests/test_card.py +0 -0
  32. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/tests/test_errors.py +0 -0
  33. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/tests/test_helpers.py +0 -0
  34. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/tests/test_requests.py +0 -0
  35. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/tests/test_statement.py +0 -0
  36. {cuenca_validations-2.1.38.dev0 → cuenca_validations-2.1.38.dev2}/tests/test_validators.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cuenca_validations
3
- Version: 2.1.38.dev0
3
+ Version: 2.1.38.dev2
4
4
  Summary: Cuenca common validations
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-validations
6
6
  Author: Cuenca
@@ -8,6 +8,7 @@ __all__ = [
8
8
  'BalanceEntryQuery',
9
9
  'BankAccountValidationQuery',
10
10
  'BankAccountValidationRequest',
11
+ 'BankCode',
11
12
  'PostalCodeQuery',
12
13
  'UsersTOSQuery',
13
14
  'TOSQuery',
@@ -45,6 +46,7 @@ __all__ = [
45
46
  'FileRequest',
46
47
  'FileUploadRequest',
47
48
  'FraudFundsTransferRequest',
49
+ 'FraudFundsTransferTipoPago',
48
50
  'Gender',
49
51
  'IncomeType',
50
52
  'IssuerNetwork',
@@ -145,6 +147,7 @@ from .enums import (
145
147
  EventType,
146
148
  FileExtension,
147
149
  FileFormat,
150
+ FraudFundsTransferTipoPago,
148
151
  Gender,
149
152
  IncomeType,
150
153
  IssuerNetwork,
@@ -175,6 +178,7 @@ from .enums import (
175
178
  )
176
179
  from .files import BatchFileMetadata
177
180
  from .general import (
181
+ BankCode,
178
182
  JSONEncoder,
179
183
  LogConfig,
180
184
  SantizedDict,
@@ -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
@@ -2,6 +2,7 @@ import json
2
2
  from dataclasses import dataclass
3
3
  from typing import Annotated, Any, Optional
4
4
 
5
+ from clabe import BANK_NAMES
5
6
  from pydantic import (
6
7
  AfterValidator,
7
8
  AnyUrl,
@@ -41,6 +42,19 @@ NormalizedName = Annotated[
41
42
  ]
42
43
 
43
44
 
45
+ def validate_bank_code(bank_code: str) -> str:
46
+ if bank_code not in BANK_NAMES:
47
+ raise ValueError('Not a valid bank code')
48
+ return bank_code
49
+
50
+
51
+ BankCode = Annotated[
52
+ str,
53
+ StringConstraints(strip_whitespace=True),
54
+ AfterValidator(validate_bank_code),
55
+ ]
56
+
57
+
44
58
  class SantizedDict(dict):
45
59
  def __init__(self, *args, **kwargs):
46
60
  super().__init__(*args, **kwargs)
@@ -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,
@@ -66,6 +67,7 @@ from .card import (
66
67
  StrictPaymentCardNumber,
67
68
  )
68
69
  from .general import (
70
+ BankCode,
69
71
  LogConfig,
70
72
  NonEmptyStr,
71
73
  SerializableAnyUrl,
@@ -327,8 +329,8 @@ class WalletTransactionRequest(BaseRequest):
327
329
  class FraudFundsTransferRequest(BaseRequest):
328
330
  user_id: NonEmptyStr
329
331
  clabe: Optional[Clabe] = None
330
- bank_code: Optional[str] = None
331
- tipo_pago: Optional[int] = None
332
+ bank_code: Optional[BankCode] = None
333
+ tipo_pago: Optional[FraudFundsTransferTipoPago] = None
332
334
  amount: Optional[StrictPositiveInt] = None
333
335
  concepto: Optional[NonEmptyStr] = None
334
336
 
@@ -0,0 +1 @@
1
+ __version__ = '2.1.38.dev2'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cuenca_validations
3
- Version: 2.1.38.dev0
3
+ Version: 2.1.38.dev2
4
4
  Summary: Cuenca common validations
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-validations
6
6
  Author: Cuenca
@@ -696,20 +696,23 @@ def test_bank_account_validation_clabe_request():
696
696
  dict(user_id='US123', clabe='646180157098510917'),
697
697
  dict(user_id='US123', clabe='646180157098510917'),
698
698
  ),
699
- (
700
- dict(
701
- user_id='US123',
702
- bank_code='40012',
703
- tipo_pago=1,
704
- amount=5000,
705
- ),
706
- dict(
707
- user_id='US123',
708
- bank_code='40012',
709
- tipo_pago=1,
710
- amount=5000,
711
- ),
712
- ),
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
+ ],
713
716
  ],
714
717
  )
715
718
  def test_fraud_funds_transfer_request(data, expected_dump):
@@ -725,6 +728,14 @@ def test_fraud_funds_transfer_request(data, expected_dump):
725
728
  dict(user_id='US123', bank_code='40012'),
726
729
  'tipo_pago required when using bank_code',
727
730
  ),
731
+ (
732
+ dict(user_id='US123', bank_code='40012', tipo_pago=1),
733
+ 'Input should be 7, 23 or 24',
734
+ ),
735
+ (
736
+ dict(user_id='US123', bank_code='99999', tipo_pago=7),
737
+ 'Not a valid bank code',
738
+ ),
728
739
  ],
729
740
  )
730
741
  def test_fraud_funds_transfer_request_invalid(data, expected_error):
@@ -1 +0,0 @@
1
- __version__ = '2.1.38.dev0'