cuenca 2.2.0.dev3__tar.gz → 2.2.1__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-2.2.0.dev3 → cuenca-2.2.1}/PKG-INFO +2 -2
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/password_resets.py +7 -1
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/transfers.py +16 -2
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/version.py +1 -1
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca.egg-info/PKG-INFO +2 -2
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca.egg-info/requires.txt +1 -1
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/setup.py +1 -1
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_transfers.py +30 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/LICENSE +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/README.md +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/__init__.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/exc.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/http/__init__.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/http/client.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/jwt.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/py.typed +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/__init__.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/accounts.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/api_keys.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/arpc.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/balance_entries.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/base.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/bill_payments.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/card_activations.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/card_transactions.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/card_validations.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/cards.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/cash_references.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/clabes.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/commissions.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/curp_validations.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/deposits.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/endpoints.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/exist_phones.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/file_batches.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/files.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/identities.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/identity_events.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/jwt_tokens.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/kyc_validations.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/limited_wallets.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/login_tokens.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/otps.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/phone_verification_associations.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/platforms.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/postal_codes.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/questionnaires.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/resources.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/savings.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/service_providers.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/sessions.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/statements.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/terms_of_service.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/user_credentials.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/user_events.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/user_lists_validation.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/user_logins.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/users.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/users_tos_agreements.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/verifications.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/wallet_transactions.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/webhooks.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/whatsapp_transfers.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca.egg-info/SOURCES.txt +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca.egg-info/dependency_links.txt +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca.egg-info/top_level.txt +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/setup.cfg +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/__init__.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/conftest.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/http/__init__.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/http/conftest.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/http/test_client.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/__init__.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_accounts.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_api_keys.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_arpc.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_balance_entries.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_bill_payments.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_card_activations.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_card_transactions.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_card_validations.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_cards.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_cash_references.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_clabes.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_commissions.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_curp_validations.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_deposits.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_endpoints.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_exist_phone.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_file_batches.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_files.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_identities.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_identity_events.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_jwt_tokens.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_kyc_validations.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_limited_wallets.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_login_tokens.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_otps.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_password_resets.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_phone_verification_association.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_platforms.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_postal_codes.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_questionnaires.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_resources.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_savings.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_service_providers.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_sessions.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_statements.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_user_credentials.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_user_events.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_user_lists_validation.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_user_logins.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_users.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_users_tos_agreements.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_verifications.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_wallet_transactions.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_webhooks.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_whatsapp_transfers.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/test_cuenca.py +0 -0
- {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/test_jwt.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cuenca
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.1
|
|
4
4
|
Summary: Cuenca API Client
|
|
5
5
|
Home-page: https://github.com/cuenca-mx/cuenca-python
|
|
6
6
|
Author: Cuenca
|
|
@@ -16,7 +16,7 @@ Requires-Python: >=3.9
|
|
|
16
16
|
Description-Content-Type: text/markdown
|
|
17
17
|
License-File: LICENSE
|
|
18
18
|
Requires-Dist: requests>=2.32.0
|
|
19
|
-
Requires-Dist: cuenca-validations>=2.1.
|
|
19
|
+
Requires-Dist: cuenca-validations>=2.1.34
|
|
20
20
|
Requires-Dist: pydantic-extra-types>=2.10.0
|
|
21
21
|
Dynamic: author
|
|
22
22
|
Dynamic: author-email
|
|
@@ -27,8 +27,14 @@ class PasswordReset(Creatable):
|
|
|
27
27
|
'id': 'PRNEUInh69SuKXXmK95sROwQ',
|
|
28
28
|
'platform_id': 'PT-1234567890',
|
|
29
29
|
'flow_id': '123e4567-e89b-12d3-a456-426614174000',
|
|
30
|
-
'status': '
|
|
30
|
+
'status': 'succeeded',
|
|
31
|
+
'provider_url': (
|
|
32
|
+
'https://dashboard.metamap.com/identity/'
|
|
33
|
+
'identity-id/verification/verification-id'
|
|
34
|
+
),
|
|
31
35
|
'created_at': '2026-05-06T14:15:22Z',
|
|
36
|
+
'updated_at': '2026-05-06T14:18:22Z',
|
|
37
|
+
'deactivated_at': '2026-05-06T14:20:22Z',
|
|
32
38
|
}
|
|
33
39
|
}
|
|
34
40
|
)
|
|
@@ -2,20 +2,23 @@ import datetime as dt
|
|
|
2
2
|
from typing import ClassVar, Optional, cast
|
|
3
3
|
|
|
4
4
|
from cuenca_validations.types import (
|
|
5
|
+
TransactionStatus,
|
|
5
6
|
TransferNetwork,
|
|
6
7
|
TransferQuery,
|
|
7
8
|
TransferRequest,
|
|
9
|
+
UpdateTransferRequest,
|
|
8
10
|
)
|
|
9
11
|
from cuenca_validations.typing import DictStrAny
|
|
10
12
|
from requests import HTTPError
|
|
11
13
|
|
|
12
14
|
from ..exc import CuencaException
|
|
15
|
+
from ..http import Session, session as global_session
|
|
13
16
|
from .accounts import Account
|
|
14
|
-
from .base import Creatable, Transaction
|
|
17
|
+
from .base import Creatable, Transaction, Updateable
|
|
15
18
|
from .resources import retrieve_uri
|
|
16
19
|
|
|
17
20
|
|
|
18
|
-
class Transfer(Transaction, Creatable):
|
|
21
|
+
class Transfer(Transaction, Creatable, Updateable):
|
|
19
22
|
_resource: ClassVar = 'transfers'
|
|
20
23
|
_query_params: ClassVar = TransferQuery
|
|
21
24
|
|
|
@@ -71,6 +74,17 @@ class Transfer(Transaction, Creatable):
|
|
|
71
74
|
)
|
|
72
75
|
return cls._create(**req.model_dump())
|
|
73
76
|
|
|
77
|
+
@classmethod
|
|
78
|
+
def update(
|
|
79
|
+
cls,
|
|
80
|
+
transfer_id: str,
|
|
81
|
+
status: TransactionStatus,
|
|
82
|
+
*,
|
|
83
|
+
session: Session = global_session,
|
|
84
|
+
) -> 'Transfer':
|
|
85
|
+
req = UpdateTransferRequest(status=status)
|
|
86
|
+
return cls._update(transfer_id, session=session, **req.model_dump())
|
|
87
|
+
|
|
74
88
|
@classmethod
|
|
75
89
|
def create_many(cls, requests: list[TransferRequest]) -> DictStrAny:
|
|
76
90
|
transfers: DictStrAny = dict(submitted=[], errors=[])
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cuenca
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.1
|
|
4
4
|
Summary: Cuenca API Client
|
|
5
5
|
Home-page: https://github.com/cuenca-mx/cuenca-python
|
|
6
6
|
Author: Cuenca
|
|
@@ -16,7 +16,7 @@ Requires-Python: >=3.9
|
|
|
16
16
|
Description-Content-Type: text/markdown
|
|
17
17
|
License-File: LICENSE
|
|
18
18
|
Requires-Dist: requests>=2.32.0
|
|
19
|
-
Requires-Dist: cuenca-validations>=2.1.
|
|
19
|
+
Requires-Dist: cuenca-validations>=2.1.34
|
|
20
20
|
Requires-Dist: pydantic-extra-types>=2.10.0
|
|
21
21
|
Dynamic: author
|
|
22
22
|
Dynamic: author-email
|
|
@@ -130,3 +130,33 @@ def test_invalid_params():
|
|
|
130
130
|
with pytest.raises(ValidationError) as e:
|
|
131
131
|
Transfer.one(invalid_param='invalid_param')
|
|
132
132
|
assert 'Extra inputs are not permitted' in str(e)
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
@pytest.mark.vcr
|
|
136
|
+
def test_transfers_update_succeeded():
|
|
137
|
+
transfer = Transfer.update('TR01', status=TransactionStatus.succeeded)
|
|
138
|
+
assert transfer.id == 'TR01'
|
|
139
|
+
assert transfer.status == TransactionStatus.succeeded
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
@pytest.mark.vcr
|
|
143
|
+
def test_transfers_update_failed():
|
|
144
|
+
transfer = Transfer.update('TR02', status=TransactionStatus.failed)
|
|
145
|
+
assert transfer.id == 'TR02'
|
|
146
|
+
assert transfer.status == TransactionStatus.failed
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
@pytest.mark.parametrize(
|
|
150
|
+
'invalid_status',
|
|
151
|
+
[
|
|
152
|
+
TransactionStatus.created,
|
|
153
|
+
TransactionStatus.submitted,
|
|
154
|
+
TransactionStatus.in_review,
|
|
155
|
+
'cancelled',
|
|
156
|
+
'approve',
|
|
157
|
+
'reject',
|
|
158
|
+
],
|
|
159
|
+
)
|
|
160
|
+
def test_transfers_update_rejects_invalid_status(invalid_status):
|
|
161
|
+
with pytest.raises(ValidationError):
|
|
162
|
+
Transfer.update('TR03', status=invalid_status)
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|