-
Notifications
You must be signed in to change notification settings - Fork 214
/
test_redis_managed_oauth2.py
63 lines (54 loc) · 2.34 KB
/
test_redis_managed_oauth2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# coding: utf-8
from unittest.mock import Mock, patch
import uuid
from boxsdk.auth import redis_managed_oauth2
def test_redis_managed_oauth2_gets_tokens_from_redis_on_init(access_token, refresh_token):
redis_server = Mock(redis_managed_oauth2.StrictRedis)
redis_server.hvals.return_value = access_token, refresh_token
unique_id = Mock()
oauth2 = redis_managed_oauth2.RedisManagedOAuth2(
client_id=None,
client_secret=None,
unique_id=unique_id,
redis_server=redis_server,
)
redis_server.hvals.assert_called_once_with(unique_id)
assert oauth2.unique_id is unique_id
def test_redis_managed_oauth2_gets_tokens_from_redis_during_refresh(access_token, refresh_token, new_access_token):
new_refresh_token = uuid.uuid4().hex
redis_server = Mock(redis_managed_oauth2.StrictRedis)
redis_server.hvals.return_value = new_access_token, new_refresh_token
unique_id = Mock()
oauth2 = redis_managed_oauth2.RedisManagedOAuth2(
access_token=access_token,
refresh_token=refresh_token,
client_id=None,
client_secret=None,
unique_id=unique_id,
redis_server=redis_server,
)
assert oauth2.access_token == access_token
redis_server.hvals.assert_not_called()
assert oauth2.refresh('bogus_access_token') == (new_access_token, new_refresh_token)
assert oauth2.access_token == new_access_token
redis_server.hvals.assert_called_once_with(unique_id)
def test_redis_managed_oauth2_stores_tokens_to_redis_during_refresh(
access_token,
refresh_token,
mock_box_session,
successful_token_response,
):
redis_server = Mock(redis_managed_oauth2.StrictRedis)
redis_server.hvals.return_value = access_token, refresh_token
unique_id = Mock()
with patch.object(redis_managed_oauth2.RedisManagedOAuth2, '_update_current_tokens'):
oauth2 = redis_managed_oauth2.RedisManagedOAuth2(
client_id=None,
client_secret=None,
unique_id=unique_id,
redis_server=redis_server,
session=mock_box_session,
)
mock_box_session.request.return_value = successful_token_response
oauth2.send_token_request({}, access_token=None, expect_refresh_token=True)
redis_server.hmset.assert_called_once_with(unique_id, {'access': access_token, 'refresh': refresh_token})