cuenca 2.1.10.dev2__tar.gz → 2.1.11__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.1.10.dev2 → cuenca-2.1.11}/PKG-INFO +1 -1
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/sessions.py +4 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/version.py +1 -1
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca.egg-info/PKG-INFO +1 -1
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/conftest.py +24 -1
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_sessions.py +35 -2
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/LICENSE +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/README.md +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/__init__.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/exc.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/http/__init__.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/http/client.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/jwt.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/py.typed +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/__init__.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/accounts.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/api_keys.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/arpc.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/balance_entries.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/base.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/bill_payments.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/card_activations.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/card_transactions.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/card_validations.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/cards.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/cash_references.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/clabes.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/commissions.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/curp_validations.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/deposits.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/endpoints.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/exist_phones.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/file_batches.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/files.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/identities.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/identity_events.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/jwt_tokens.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/kyc_validations.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/limited_wallets.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/login_tokens.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/otps.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/phone_verification_associations.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/platforms.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/postal_codes.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/questionnaires.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/resources.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/savings.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/service_providers.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/statements.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/terms_of_service.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/transfers.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/user_credentials.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/user_events.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/user_lists_validation.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/user_logins.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/users.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/users_tos_agreements.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/verifications.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/wallet_transactions.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/webhooks.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca/resources/whatsapp_transfers.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca.egg-info/SOURCES.txt +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca.egg-info/dependency_links.txt +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca.egg-info/requires.txt +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/cuenca.egg-info/top_level.txt +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/setup.cfg +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/setup.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/__init__.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/http/__init__.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/http/conftest.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/http/test_client.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/__init__.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_accounts.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_api_keys.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_arpc.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_balance_entries.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_bill_payments.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_card_activations.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_card_transactions.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_card_validations.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_cards.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_cash_references.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_clabes.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_commissions.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_curp_validations.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_deposits.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_endpoints.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_exist_phone.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_file_batches.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_files.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_identities.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_identity_events.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_jwt_tokens.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_kyc_validations.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_limited_wallets.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_login_tokens.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_otps.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_phone_verification_association.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_platforms.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_postal_codes.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_questionnaires.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_resources.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_savings.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_service_providers.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_statements.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_transfers.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_user_credentials.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_user_events.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_user_lists_validation.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_user_logins.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_users.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_users_tos_agreements.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_verifications.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_wallet_transactions.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_webhooks.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/resources/test_whatsapp_transfers.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/test_cuenca.py +0 -0
- {cuenca-2.1.10.dev2 → cuenca-2.1.11}/tests/test_jwt.py +0 -0
|
@@ -20,6 +20,7 @@ class Session(Creatable, Retrievable, Queryable):
|
|
|
20
20
|
success_url: Optional[SerializableAnyUrl] = None
|
|
21
21
|
failure_url: Optional[SerializableAnyUrl] = None
|
|
22
22
|
type: Optional[SessionType] = None
|
|
23
|
+
resource_id: Optional[str] = None
|
|
23
24
|
|
|
24
25
|
model_config = ConfigDict(
|
|
25
26
|
json_schema_extra={
|
|
@@ -32,6 +33,7 @@ class Session(Creatable, Retrievable, Queryable):
|
|
|
32
33
|
'success_url': 'http://example_success.com',
|
|
33
34
|
'failure_url': 'http://example_failure.com',
|
|
34
35
|
'type': 'session.registration',
|
|
36
|
+
'resource_id': 'some_resource_id',
|
|
35
37
|
}
|
|
36
38
|
}
|
|
37
39
|
)
|
|
@@ -43,6 +45,7 @@ class Session(Creatable, Retrievable, Queryable):
|
|
|
43
45
|
type: SessionType,
|
|
44
46
|
success_url: Optional[str] = None,
|
|
45
47
|
failure_url: Optional[str] = None,
|
|
48
|
+
resource_id: Optional[str] = None,
|
|
46
49
|
*,
|
|
47
50
|
session: http.Session = http.session,
|
|
48
51
|
) -> 'Session':
|
|
@@ -51,5 +54,6 @@ class Session(Creatable, Retrievable, Queryable):
|
|
|
51
54
|
type=type,
|
|
52
55
|
success_url=success_url,
|
|
53
56
|
failure_url=failure_url,
|
|
57
|
+
resource_id=resource_id,
|
|
54
58
|
)
|
|
55
59
|
return cls._create(session=session, **req.model_dump())
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import datetime as dt
|
|
2
2
|
from io import BytesIO
|
|
3
|
+
from typing import Generator
|
|
3
4
|
|
|
4
5
|
import pytest
|
|
5
|
-
from cuenca_validations.types import Country, Gender, State
|
|
6
|
+
from cuenca_validations.types import Country, Gender, SessionType, State
|
|
6
7
|
from cuenca_validations.types.enums import Profession
|
|
7
8
|
|
|
8
9
|
import cuenca
|
|
10
|
+
from cuenca.http import Session as ClientSession
|
|
11
|
+
from cuenca.resources.sessions import Session
|
|
9
12
|
|
|
10
13
|
cuenca.configure(sandbox=True)
|
|
11
14
|
|
|
@@ -76,3 +79,23 @@ def user_lists_request() -> dict:
|
|
|
76
79
|
def file() -> BytesIO:
|
|
77
80
|
with open('tests/data/test_file.jpeg', 'rb') as image_file:
|
|
78
81
|
return BytesIO(image_file.read())
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
@pytest.fixture
|
|
85
|
+
def session_with_resource_id() -> Generator[Session]:
|
|
86
|
+
session = Session.create(
|
|
87
|
+
'USPR4JxMuwSG60u2h4gBpB6Q',
|
|
88
|
+
SessionType.onboarding_verification,
|
|
89
|
+
resource_id='68b887f60c33abad1ea841d3',
|
|
90
|
+
)
|
|
91
|
+
yield session
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
@pytest.fixture
|
|
95
|
+
def client_authed_with_session(
|
|
96
|
+
session_with_resource_id: Session,
|
|
97
|
+
) -> Generator[ClientSession]:
|
|
98
|
+
client = ClientSession()
|
|
99
|
+
client.configure(session_token=session_with_resource_id.id, sandbox=True)
|
|
100
|
+
client.basic_auth = ('', '')
|
|
101
|
+
yield client
|
|
@@ -2,7 +2,8 @@ import pytest
|
|
|
2
2
|
from cuenca_validations.types import Profession, SessionType
|
|
3
3
|
from pydantic import ValidationError
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
from cuenca.exc import CuencaResponseException
|
|
6
|
+
from cuenca.http import Session as ClientSession
|
|
6
7
|
from cuenca.resources import CurpValidation, Session, User
|
|
7
8
|
|
|
8
9
|
|
|
@@ -33,8 +34,40 @@ def test_session_create(curp_validation_request: dict, user_request: dict):
|
|
|
33
34
|
assert user_session.user_id == user.id
|
|
34
35
|
assert user_session.type == SessionType.registration
|
|
35
36
|
|
|
36
|
-
ephimeral_cuenca_session =
|
|
37
|
+
ephimeral_cuenca_session = ClientSession()
|
|
37
38
|
ephimeral_cuenca_session.configure(session_token=user_session.id)
|
|
38
39
|
|
|
39
40
|
user = User.update(user.id, profession=Profession.comercio)
|
|
40
41
|
assert user.profession == Profession.comercio
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
@pytest.mark.vcr
|
|
45
|
+
def test_session_create_with_resource_id(
|
|
46
|
+
session_with_resource_id: Session,
|
|
47
|
+
) -> None:
|
|
48
|
+
assert session_with_resource_id.user_id == 'USPR4JxMuwSG60u2h4gBpB6Q'
|
|
49
|
+
assert session_with_resource_id.resource_id == '68b887f60c33abad1ea841d3'
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
@pytest.mark.vcr
|
|
53
|
+
def test_session_with_resource_id_authorized(
|
|
54
|
+
client_authed_with_session: ClientSession,
|
|
55
|
+
) -> None:
|
|
56
|
+
resource_id = '68b887f60c33abad1ea841d3'
|
|
57
|
+
response = client_authed_with_session.get(
|
|
58
|
+
f'onboarding_verifications/{resource_id}'
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
assert response['gov_id_document_number'] == '267202610'
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
@pytest.mark.vcr
|
|
65
|
+
def test_session_with_resource_id_unauthorized(
|
|
66
|
+
client_authed_with_session: ClientSession,
|
|
67
|
+
) -> None:
|
|
68
|
+
resource_id = '68b887f60c33abad1ea841d4'
|
|
69
|
+
with pytest.raises(CuencaResponseException) as e:
|
|
70
|
+
client_authed_with_session.get(
|
|
71
|
+
f'onboarding_verifications/{resource_id}'
|
|
72
|
+
)
|
|
73
|
+
assert e.value.json['error'] == 'User has not enough permissions'
|
|
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
|