cuenca-validations 2.1.36.dev0__tar.gz → 2.1.36.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.
Files changed (36) hide show
  1. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/PKG-INFO +1 -1
  2. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/types/__init__.py +2 -0
  3. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/types/requests.py +15 -0
  4. cuenca_validations-2.1.36.dev1/cuenca_validations/version.py +1 -0
  5. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations.egg-info/PKG-INFO +1 -1
  6. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/tests/test_requests.py +29 -0
  7. cuenca_validations-2.1.36.dev0/cuenca_validations/version.py +0 -1
  8. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/LICENSE +0 -0
  9. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/README.md +0 -0
  10. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/__init__.py +0 -0
  11. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/card_bins.py +0 -0
  12. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/errors.py +0 -0
  13. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/py.typed +0 -0
  14. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/types/card.py +0 -0
  15. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/types/enums.py +0 -0
  16. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/types/files.py +0 -0
  17. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/types/general.py +0 -0
  18. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/types/helpers.py +0 -0
  19. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/types/identities.py +0 -0
  20. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/types/morals.py +0 -0
  21. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/types/queries.py +0 -0
  22. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/typing.py +0 -0
  23. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations/validators.py +0 -0
  24. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations.egg-info/SOURCES.txt +0 -0
  25. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations.egg-info/dependency_links.txt +0 -0
  26. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations.egg-info/requires.txt +0 -0
  27. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/cuenca_validations.egg-info/top_level.txt +0 -0
  28. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/setup.cfg +0 -0
  29. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/setup.py +0 -0
  30. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/tests/__init__.py +0 -0
  31. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/tests/test_card.py +0 -0
  32. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/tests/test_errors.py +0 -0
  33. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/tests/test_helpers.py +0 -0
  34. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/tests/test_statement.py +0 -0
  35. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/tests/test_types.py +0 -0
  36. {cuenca_validations-2.1.36.dev0 → cuenca_validations-2.1.36.dev1}/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.36.dev0
3
+ Version: 2.1.36.dev1
4
4
  Summary: Cuenca common validations
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-validations
6
6
  Author: Cuenca
@@ -95,6 +95,7 @@ __all__ = [
95
95
  'TransferNetwork',
96
96
  'TransferQuery',
97
97
  'TransferRequest',
98
+ 'UpdateTransferRequest',
98
99
  'UserCardNotification',
99
100
  'UserCredentialRequest',
100
101
  'UserCredentialUpdateRequest',
@@ -251,6 +252,7 @@ from .requests import (
251
252
  StrictTransferRequest,
252
253
  TOSRequest,
253
254
  TransferRequest,
255
+ UpdateTransferRequest,
254
256
  UserCredentialRequest,
255
257
  UserCredentialUpdateRequest,
256
258
  UserListsRequest,
@@ -46,6 +46,7 @@ from ..types.enums import (
46
46
  State,
47
47
  TermsOfService,
48
48
  TrackDataMethod,
49
+ TransactionStatus,
49
50
  TransactionTokenValidationStatus,
50
51
  UserCardNotification,
51
52
  UserStatus,
@@ -155,6 +156,20 @@ class StrictTransferRequest(BaseTransferRequest):
155
156
  )
156
157
 
157
158
 
159
+ class UpdateTransferRequest(BaseRequest):
160
+ status: TransactionStatus
161
+
162
+ @field_validator('status')
163
+ @classmethod
164
+ def validate_status(cls, status: TransactionStatus) -> TransactionStatus:
165
+ if status not in (
166
+ TransactionStatus.succeeded,
167
+ TransactionStatus.failed,
168
+ ):
169
+ raise ValueError('status must be succeeded or failed')
170
+ return status
171
+
172
+
158
173
  class CardUpdateRequest(BaseRequest):
159
174
  status: Optional[CardStatus] = None
160
175
  pin_block: Optional[str] = None
@@ -0,0 +1 @@
1
+ __version__ = '2.1.36.dev1'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cuenca_validations
3
- Version: 2.1.36.dev0
3
+ Version: 2.1.36.dev1
4
4
  Summary: Cuenca common validations
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-validations
6
6
  Author: Cuenca
@@ -5,6 +5,7 @@ from pydantic_extra_types.phone_numbers import PhoneNumber
5
5
  from cuenca_validations.types.enums import VerificationType
6
6
  from cuenca_validations.types.requests import (
7
7
  PasswordResetRequest,
8
+ UpdateTransferRequest,
8
9
  UserTOSAgreementRequest,
9
10
  UserUpdateRequest,
10
11
  VerificationRequest,
@@ -94,3 +95,31 @@ def test_user_update_request_normalizes_email() -> None:
94
95
  def test_user_update_request_normalizes_phone() -> None:
95
96
  req = UserUpdateRequest(phone_number=PhoneNumber('+116504401222'))
96
97
  assert req.phone_number == '+16504401222'
98
+
99
+
100
+ @pytest.mark.parametrize('status', ['succeeded', 'failed'])
101
+ def test_update_transfer_request_valid_status(status: str) -> None:
102
+ req = UpdateTransferRequest.model_validate({'status': status})
103
+ assert req.status == status
104
+ assert req.model_dump() == {'status': status}
105
+
106
+
107
+ @pytest.mark.parametrize('status', ['created', 'submitted', 'in_review'])
108
+ def test_update_transfer_request_invalid_status(status: str) -> None:
109
+ with pytest.raises(ValidationError) as ex:
110
+ UpdateTransferRequest.model_validate({'status': status})
111
+ assert 'status' in str(ex.value)
112
+
113
+
114
+ def test_update_transfer_request_missing_status() -> None:
115
+ with pytest.raises(ValidationError) as ex:
116
+ UpdateTransferRequest.model_validate({})
117
+ assert 'status' in str(ex.value)
118
+
119
+
120
+ def test_update_transfer_request_forbids_extra() -> None:
121
+ with pytest.raises(ValidationError) as ex:
122
+ UpdateTransferRequest.model_validate(
123
+ {'status': 'succeeded', 'foo': 'bar'}
124
+ )
125
+ assert 'Extra inputs are not permitted' in str(ex.value)
@@ -1 +0,0 @@
1
- __version__ = '2.1.36.dev0'