cuenca 0.15.8.dev3__tar.gz → 0.15.9__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-0.15.8.dev3 → cuenca-0.15.9}/PKG-INFO +1 -1
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/__init__.py +2 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/http/client.py +23 -23
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/jwt.py +1 -1
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/__init__.py +3 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/limited_wallets.py +0 -15
- cuenca-0.15.9/cuenca/resources/user_lists_validation.py +42 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/user_logins.py +2 -2
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/version.py +1 -1
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca.egg-info/PKG-INFO +1 -1
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca.egg-info/SOURCES.txt +2 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/conftest.py +11 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_limited_wallets.py +0 -7
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_login_tokens.py +2 -2
- cuenca-0.15.9/tests/resources/test_user_lists_validation.py +20 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_user_logins.py +3 -3
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/LICENSE +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/README.md +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/exc.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/http/__init__.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/py.typed +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/accounts.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/api_keys.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/arpc.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/balance_entries.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/base.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/bill_payments.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/card_activations.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/card_transactions.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/card_validations.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/cards.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/cash_references.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/clabes.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/commissions.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/curp_validations.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/deposits.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/endpoints.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/file_batches.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/files.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/identities.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/identity_events.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/kyc_validations.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/kyc_verifications.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/login_tokens.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/platforms.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/resources.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/savings.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/service_providers.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/sessions.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/statements.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/transfers.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/user_credentials.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/user_events.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/users.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/verifications.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/wallet_transactions.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/webhooks.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca/resources/whatsapp_transfers.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca.egg-info/dependency_links.txt +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca.egg-info/requires.txt +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/cuenca.egg-info/top_level.txt +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/setup.cfg +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/setup.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/__init__.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/http/__init__.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/http/conftest.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/http/test_client.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/__init__.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_accounts.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_api_keys.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_arpc.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_balance_entries.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_bill_payments.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_card_activations.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_card_transactions.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_card_validations.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_cards.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_cash_references.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_clabes.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_commissions.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_curp_validations.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_deposits.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_endpoints.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_file_batches.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_files.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_identities.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_identity_events.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_kyc_validations.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_kyc_verifications.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_platforms.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_resources.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_savings.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_service_providers.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_sessions.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_statements.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_transfers.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_user_credentials.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_user_events.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_users.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_verifications.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_wallet_transactions.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_webhooks.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/resources/test_whatsapp_transfers.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/test_cuenca.py +0 -0
- {cuenca-0.15.8.dev3 → cuenca-0.15.9}/tests/test_jwt.py +0 -0
|
@@ -32,6 +32,7 @@ __all__ = [
|
|
|
32
32
|
'User',
|
|
33
33
|
'UserCredential',
|
|
34
34
|
'UserEvent',
|
|
35
|
+
'UserListsValidation',
|
|
35
36
|
'UserLogin',
|
|
36
37
|
'Verification',
|
|
37
38
|
'WalletTransaction',
|
|
@@ -77,6 +78,7 @@ from .resources import (
|
|
|
77
78
|
User,
|
|
78
79
|
UserCredential,
|
|
79
80
|
UserEvent,
|
|
81
|
+
UserListsValidation,
|
|
80
82
|
UserLogin,
|
|
81
83
|
Verification,
|
|
82
84
|
WalletTransaction,
|
|
@@ -24,18 +24,15 @@ SANDBOX_HOST = 'sandbox.cuenca.com'
|
|
|
24
24
|
class Session:
|
|
25
25
|
|
|
26
26
|
host: str = API_HOST
|
|
27
|
+
headers: DictStrAny = {}
|
|
27
28
|
basic_auth: Tuple[str, str]
|
|
28
29
|
jwt_token: Optional[Jwt] = None
|
|
29
|
-
session: requests.Session
|
|
30
30
|
|
|
31
31
|
def __init__(self):
|
|
32
|
-
self.
|
|
33
|
-
|
|
34
|
-
{
|
|
35
|
-
|
|
36
|
-
'User-Agent': f'cuenca-python/{CLIENT_VERSION}',
|
|
37
|
-
}
|
|
38
|
-
)
|
|
32
|
+
self.headers = {
|
|
33
|
+
'X-Cuenca-Api-Version': API_VERSION,
|
|
34
|
+
'User-Agent': f'cuenca-python/{CLIENT_VERSION}',
|
|
35
|
+
}
|
|
39
36
|
|
|
40
37
|
# basic auth
|
|
41
38
|
api_key = os.getenv('CUENCA_API_KEY', '')
|
|
@@ -75,10 +72,10 @@ class Session:
|
|
|
75
72
|
self.jwt_token = Jwt.create(self)
|
|
76
73
|
|
|
77
74
|
if login_token:
|
|
78
|
-
self.
|
|
75
|
+
self.headers['X-Cuenca-LoginToken'] = login_token
|
|
79
76
|
|
|
80
77
|
if session_token:
|
|
81
|
-
self.
|
|
78
|
+
self.headers['X-Cuenca-SessionId'] = session_token
|
|
82
79
|
|
|
83
80
|
def get(
|
|
84
81
|
self, endpoint: str, params: ClientRequestParams = None
|
|
@@ -105,19 +102,22 @@ class Session:
|
|
|
105
102
|
data: OptionalDict = None,
|
|
106
103
|
**kwargs,
|
|
107
104
|
) -> bytes:
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
105
|
+
resp = None
|
|
106
|
+
with requests.Session() as session:
|
|
107
|
+
session.headers = self.headers # type: ignore
|
|
108
|
+
if self.jwt_token:
|
|
109
|
+
if self.jwt_token.is_expired:
|
|
110
|
+
self.jwt_token = Jwt.create(self)
|
|
111
|
+
self.headers['X-Cuenca-Token'] = self.jwt_token.token
|
|
112
|
+
session.headers = self.headers # type: ignore
|
|
113
|
+
resp = session.request( # type: ignore
|
|
114
|
+
method=method,
|
|
115
|
+
url='https://' + self.host + urljoin('/', endpoint),
|
|
116
|
+
auth=self.auth,
|
|
117
|
+
json=json.loads(JSONEncoder().encode(data)),
|
|
118
|
+
params=params,
|
|
119
|
+
**kwargs,
|
|
120
|
+
)
|
|
121
121
|
self._check_response(resp)
|
|
122
122
|
return resp.content
|
|
123
123
|
|
|
@@ -42,7 +42,7 @@ class Jwt(BaseModel):
|
|
|
42
42
|
@classmethod
|
|
43
43
|
def create(cls, session: 'Session') -> 'Jwt':
|
|
44
44
|
session.jwt_token = None
|
|
45
|
-
session.
|
|
45
|
+
session.headers.pop('X-Cuenca-Token', None)
|
|
46
46
|
token = session.post('/token', dict())['token']
|
|
47
47
|
expires_at = Jwt.get_expiration_date(token)
|
|
48
48
|
return cls(expires_at=expires_at, token=token)
|
|
@@ -31,6 +31,7 @@ __all__ = [
|
|
|
31
31
|
'User',
|
|
32
32
|
'UserEvent',
|
|
33
33
|
'UserLogin',
|
|
34
|
+
'UserListsValidation',
|
|
34
35
|
'Verification',
|
|
35
36
|
'WalletTransaction',
|
|
36
37
|
'Webhook',
|
|
@@ -69,6 +70,7 @@ from .statements import Statement
|
|
|
69
70
|
from .transfers import Transfer
|
|
70
71
|
from .user_credentials import UserCredential
|
|
71
72
|
from .user_events import UserEvent
|
|
73
|
+
from .user_lists_validation import UserListsValidation
|
|
72
74
|
from .user_logins import UserLogin
|
|
73
75
|
from .users import User
|
|
74
76
|
from .verifications import Verification
|
|
@@ -109,6 +111,7 @@ resource_classes = [
|
|
|
109
111
|
User,
|
|
110
112
|
UserCredential,
|
|
111
113
|
UserEvent,
|
|
114
|
+
UserListsValidation,
|
|
112
115
|
UserLogin,
|
|
113
116
|
Verification,
|
|
114
117
|
WalletTransaction,
|
|
@@ -8,7 +8,6 @@ from cuenca_validations.types import (
|
|
|
8
8
|
Rfc,
|
|
9
9
|
)
|
|
10
10
|
|
|
11
|
-
from ..http import Session, session as global_session
|
|
12
11
|
from .base import Wallet
|
|
13
12
|
|
|
14
13
|
|
|
@@ -39,17 +38,3 @@ class LimitedWallet(Wallet):
|
|
|
39
38
|
allowed_rfc=allowed_rfc,
|
|
40
39
|
)
|
|
41
40
|
return cast('LimitedWallet', cls._create(**request.dict()))
|
|
42
|
-
|
|
43
|
-
@classmethod
|
|
44
|
-
def block(
|
|
45
|
-
cls, limited_wallet_id: str, *, session: Session = global_session
|
|
46
|
-
) -> 'LimitedWallet':
|
|
47
|
-
"""
|
|
48
|
-
Blocks a Limited Wallet avoiding it to send and receive transactions
|
|
49
|
-
|
|
50
|
-
Args:
|
|
51
|
-
limited_wallet_id: Limited Wallet ID
|
|
52
|
-
"""
|
|
53
|
-
url = f'{cls._resource}/{limited_wallet_id}'
|
|
54
|
-
resp = session.delete(url)
|
|
55
|
-
return cast('LimitedWallet', cls._from_dict(resp))
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import datetime as dt
|
|
2
|
+
from typing import ClassVar, Optional, cast
|
|
3
|
+
|
|
4
|
+
from cuenca_validations.types import UserListsRequest, VerificationStatus
|
|
5
|
+
from cuenca_validations.types.identities import CurpField
|
|
6
|
+
|
|
7
|
+
from ..http import Session, session as global_session
|
|
8
|
+
from .base import Creatable, Retrievable
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class UserListsValidation(Creatable, Retrievable):
|
|
12
|
+
_resource: ClassVar = 'user_lists_validations'
|
|
13
|
+
created_at: dt.datetime
|
|
14
|
+
names: Optional[str] = None
|
|
15
|
+
first_surname: Optional[str] = None
|
|
16
|
+
second_surname: Optional[str] = None
|
|
17
|
+
curp: Optional[CurpField] = None
|
|
18
|
+
account_number: Optional[str] = None
|
|
19
|
+
status: Optional[VerificationStatus] = None
|
|
20
|
+
|
|
21
|
+
@classmethod
|
|
22
|
+
def create(
|
|
23
|
+
cls,
|
|
24
|
+
names: Optional[str] = None,
|
|
25
|
+
first_surname: Optional[str] = None,
|
|
26
|
+
second_surname: Optional[str] = None,
|
|
27
|
+
curp: Optional[CurpField] = None,
|
|
28
|
+
account_number: Optional[str] = None,
|
|
29
|
+
*,
|
|
30
|
+
session: Session = global_session,
|
|
31
|
+
) -> 'UserListsValidation':
|
|
32
|
+
req = UserListsRequest(
|
|
33
|
+
names=names,
|
|
34
|
+
first_surname=first_surname,
|
|
35
|
+
second_surname=second_surname,
|
|
36
|
+
curp=curp,
|
|
37
|
+
account_number=account_number,
|
|
38
|
+
)
|
|
39
|
+
return cast(
|
|
40
|
+
'UserListsValidation',
|
|
41
|
+
cls._create(session=session, **req.dict()),
|
|
42
|
+
)
|
|
@@ -33,7 +33,7 @@ class UserLogin(Creatable):
|
|
|
33
33
|
req = UserLoginRequest(password=password, user_id=user_id)
|
|
34
34
|
login = cast('UserLogin', cls._create(session=session, **req.dict()))
|
|
35
35
|
if login.success:
|
|
36
|
-
session.
|
|
36
|
+
session.headers['X-Cuenca-LoginId'] = login.id
|
|
37
37
|
return login
|
|
38
38
|
|
|
39
39
|
@classmethod
|
|
@@ -43,4 +43,4 @@ class UserLogin(Creatable):
|
|
|
43
43
|
# Using user_id vs user_login_id to avoid needing to store
|
|
44
44
|
# user_login_id or perform a query to fetch it
|
|
45
45
|
session.delete(f'{cls._resource}/{user_id}', dict())
|
|
46
|
-
session.
|
|
46
|
+
session.headers.pop('X-Cuenca-LoginId', None)
|
|
@@ -48,6 +48,7 @@ cuenca/resources/statements.py
|
|
|
48
48
|
cuenca/resources/transfers.py
|
|
49
49
|
cuenca/resources/user_credentials.py
|
|
50
50
|
cuenca/resources/user_events.py
|
|
51
|
+
cuenca/resources/user_lists_validation.py
|
|
51
52
|
cuenca/resources/user_logins.py
|
|
52
53
|
cuenca/resources/users.py
|
|
53
54
|
cuenca/resources/verifications.py
|
|
@@ -94,6 +95,7 @@ tests/resources/test_statements.py
|
|
|
94
95
|
tests/resources/test_transfers.py
|
|
95
96
|
tests/resources/test_user_credentials.py
|
|
96
97
|
tests/resources/test_user_events.py
|
|
98
|
+
tests/resources/test_user_lists_validation.py
|
|
97
99
|
tests/resources/test_user_logins.py
|
|
98
100
|
tests/resources/test_users.py
|
|
99
101
|
tests/resources/test_verifications.py
|
|
@@ -63,6 +63,17 @@ def user_request() -> Dict:
|
|
|
63
63
|
return user_dict
|
|
64
64
|
|
|
65
65
|
|
|
66
|
+
@pytest.fixture
|
|
67
|
+
def user_lists_request() -> Dict:
|
|
68
|
+
user_dict = dict(
|
|
69
|
+
curp='LOHJ660606HDFPRS02',
|
|
70
|
+
names='Alejandro',
|
|
71
|
+
first_surname='Martinez',
|
|
72
|
+
second_surname='Viquez',
|
|
73
|
+
)
|
|
74
|
+
return user_dict
|
|
75
|
+
|
|
76
|
+
|
|
66
77
|
@pytest.fixture
|
|
67
78
|
def file() -> BytesIO:
|
|
68
79
|
with open('tests/data/test_file.jpeg', 'rb') as image_file:
|
|
@@ -19,10 +19,3 @@ def test_limited_wallet_retrieve():
|
|
|
19
19
|
id = 'LA3vx08KlQCXsaP9qyWfb680'
|
|
20
20
|
wallet = LimitedWallet.retrieve(id)
|
|
21
21
|
assert wallet.id == id
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
@pytest.mark.vcr
|
|
25
|
-
def test_limited_wallet_block():
|
|
26
|
-
id = 'LA3vx08KlQCXsaP9qyWfb680'
|
|
27
|
-
wallet = LimitedWallet.block(id)
|
|
28
|
-
assert wallet.id == id
|
|
@@ -4,7 +4,7 @@ from cuenca import LoginToken, Transfer, UserLogin
|
|
|
4
4
|
from cuenca.http.client import Session
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
@pytest.fixture
|
|
7
|
+
@pytest.fixture(scope='function')
|
|
8
8
|
def session():
|
|
9
9
|
session = Session()
|
|
10
10
|
session.configure(
|
|
@@ -19,6 +19,6 @@ def session():
|
|
|
19
19
|
def test_login_token(session):
|
|
20
20
|
UserLogin.create('222222', session=session)
|
|
21
21
|
login_token = LoginToken.create(session=session)
|
|
22
|
-
session.
|
|
22
|
+
session.headers.pop('X-Cuenca-LoginId')
|
|
23
23
|
session.configure(login_token=login_token.id)
|
|
24
24
|
Transfer.count(session=session)
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
from cuenca_validations.types import VerificationStatus
|
|
3
|
+
|
|
4
|
+
from cuenca.exc import CuencaResponseException
|
|
5
|
+
from cuenca.resources import UserListsValidation
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@pytest.mark.vcr
|
|
9
|
+
def test_create_user_validation(user_lists_request):
|
|
10
|
+
user_validation = UserListsValidation.create(**user_lists_request)
|
|
11
|
+
assert user_validation.status == VerificationStatus.succeeded
|
|
12
|
+
assert user_validation.id
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@pytest.mark.vcr
|
|
16
|
+
def test_create_user_validation_invalid_inputs():
|
|
17
|
+
with pytest.raises(CuencaResponseException) as exc:
|
|
18
|
+
UserListsValidation.create(**dict())
|
|
19
|
+
assert exc.status_code == 403
|
|
20
|
+
assert exc.json['error'] == 'There is an error with the inputs'
|
|
@@ -21,7 +21,7 @@ def test_valid_login(session: Session):
|
|
|
21
21
|
assert login.success
|
|
22
22
|
assert login.last_login_at is not None
|
|
23
23
|
assert login.id is not None
|
|
24
|
-
assert session.
|
|
24
|
+
assert session.headers['X-Cuenca-LoginId'] == login.id
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
@pytest.mark.vcr
|
|
@@ -30,11 +30,11 @@ def test_invalid_login(session: Session):
|
|
|
30
30
|
assert not login.success
|
|
31
31
|
assert login.last_login_at is None
|
|
32
32
|
assert login.id is not None
|
|
33
|
-
assert 'X-Cuenca-LoginId' not in session.
|
|
33
|
+
assert 'X-Cuenca-LoginId' not in session.headers
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
@pytest.mark.vcr
|
|
37
37
|
def test_logout(session: Session):
|
|
38
38
|
UserLogin.create('222222', session=session)
|
|
39
39
|
UserLogin.logout(session=session)
|
|
40
|
-
assert 'X-Cuenca-LoginId' not in session.
|
|
40
|
+
assert 'X-Cuenca-LoginId' not in session.headers
|
|
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
|