cuenca-validations 2.1.37__tar.gz → 2.1.38.dev0__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.37 → cuenca_validations-2.1.38.dev0}/PKG-INFO +1 -1
  2. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/cuenca_validations/types/requests.py +11 -1
  3. cuenca_validations-2.1.38.dev0/cuenca_validations/version.py +1 -0
  4. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/cuenca_validations.egg-info/PKG-INFO +1 -1
  5. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/tests/test_types.py +54 -23
  6. cuenca_validations-2.1.37/cuenca_validations/version.py +0 -1
  7. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/LICENSE +0 -0
  8. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/README.md +0 -0
  9. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/cuenca_validations/__init__.py +0 -0
  10. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/cuenca_validations/card_bins.py +0 -0
  11. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/cuenca_validations/errors.py +0 -0
  12. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/cuenca_validations/py.typed +0 -0
  13. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/cuenca_validations/types/__init__.py +0 -0
  14. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/cuenca_validations/types/card.py +0 -0
  15. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/cuenca_validations/types/enums.py +0 -0
  16. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/cuenca_validations/types/files.py +0 -0
  17. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/cuenca_validations/types/general.py +0 -0
  18. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/cuenca_validations/types/helpers.py +0 -0
  19. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/cuenca_validations/types/identities.py +0 -0
  20. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/cuenca_validations/types/morals.py +0 -0
  21. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/cuenca_validations/types/queries.py +0 -0
  22. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/cuenca_validations/typing.py +0 -0
  23. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/cuenca_validations/validators.py +0 -0
  24. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/cuenca_validations.egg-info/SOURCES.txt +0 -0
  25. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/cuenca_validations.egg-info/dependency_links.txt +0 -0
  26. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/cuenca_validations.egg-info/requires.txt +0 -0
  27. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/cuenca_validations.egg-info/top_level.txt +0 -0
  28. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/setup.cfg +0 -0
  29. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/setup.py +0 -0
  30. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/tests/__init__.py +0 -0
  31. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/tests/test_card.py +0 -0
  32. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/tests/test_errors.py +0 -0
  33. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/tests/test_helpers.py +0 -0
  34. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/tests/test_requests.py +0 -0
  35. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/tests/test_statement.py +0 -0
  36. {cuenca_validations-2.1.37 → cuenca_validations-2.1.38.dev0}/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.37
3
+ Version: 2.1.38.dev0
4
4
  Summary: Cuenca common validations
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-validations
6
6
  Author: Cuenca
@@ -326,10 +326,20 @@ class WalletTransactionRequest(BaseRequest):
326
326
 
327
327
  class FraudFundsTransferRequest(BaseRequest):
328
328
  user_id: NonEmptyStr
329
- clabe: Clabe
329
+ clabe: Optional[Clabe] = None
330
+ bank_code: Optional[str] = None
331
+ tipo_pago: Optional[int] = None
330
332
  amount: Optional[StrictPositiveInt] = None
331
333
  concepto: Optional[NonEmptyStr] = None
332
334
 
335
+ @model_validator(mode='after')
336
+ def validate_destination(self) -> 'FraudFundsTransferRequest':
337
+ if self.clabe is None and self.bank_code is None:
338
+ raise ValueError('clabe or bank_code required')
339
+ if self.bank_code is not None and self.tipo_pago is None:
340
+ raise ValueError('tipo_pago required when using bank_code')
341
+ return self
342
+
333
343
 
334
344
  class FraudValidationRequest(BaseModel):
335
345
  amount: StrictPositiveInt
@@ -0,0 +1 @@
1
+ __version__ = '2.1.38.dev0'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cuenca_validations
3
- Version: 2.1.37
3
+ Version: 2.1.38.dev0
4
4
  Summary: Cuenca common validations
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-validations
6
6
  Author: Cuenca
@@ -675,31 +675,62 @@ def test_bank_account_validation_clabe_request():
675
675
  assert BankAccountValidationRequest(account_number='646180157098510917')
676
676
 
677
677
 
678
- def test_fraud_funds_transfer_request():
679
- request = FraudFundsTransferRequest(
680
- user_id='US123',
681
- clabe='646180157098510917',
682
- amount=10000,
683
- concepto=' Devolución fraude ',
684
- )
685
-
686
- assert request.concepto == 'Devolución fraude'
687
- assert request.model_dump() == {
688
- 'user_id': 'US123',
689
- 'clabe': '646180157098510917',
690
- 'amount': 10000,
691
- 'concepto': 'Devolución fraude',
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
+ 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
+ ),
713
+ ],
714
+ )
715
+ def test_fraud_funds_transfer_request(data, expected_dump):
716
+ request = FraudFundsTransferRequest(**data)
717
+ assert request.model_dump() == expected_dump
693
718
 
694
- request_full_balance = FraudFundsTransferRequest(
695
- user_id='US123',
696
- clabe='646180157098510917',
697
- )
698
719
 
699
- assert request_full_balance.model_dump() == {
700
- 'user_id': 'US123',
701
- 'clabe': '646180157098510917',
702
- }
720
+ @pytest.mark.parametrize(
721
+ 'data, expected_error',
722
+ [
723
+ (dict(user_id='US123'), 'clabe or bank_code required'),
724
+ (
725
+ dict(user_id='US123', bank_code='40012'),
726
+ 'tipo_pago required when using bank_code',
727
+ ),
728
+ ],
729
+ )
730
+ def test_fraud_funds_transfer_request_invalid(data, expected_error):
731
+ with pytest.raises(ValidationError) as exc:
732
+ FraudFundsTransferRequest(**data)
733
+ assert expected_error in str(exc.value)
703
734
 
704
735
 
705
736
  @pytest.mark.parametrize(
@@ -1 +0,0 @@
1
- __version__ = '2.1.37'