Added test for reauth
Test to check that we throw an exception if we cannot reauth (to ensure we don't get stuck in a loop)
This commit is contained in:
+15
-1
@@ -217,7 +217,7 @@ def mocked_requests_get(*args, **kwargs):
|
||||
|
||||
# pylint: disable=unused-variable
|
||||
(region_id, region), = LOGIN_RESPONSE['region'].items()
|
||||
if args[0] != 'use_bad_response':
|
||||
if args[0] != 'use_bad_response' and args[0] != 'reauth' and args[0] is not None:
|
||||
set_region_id = args[0].split('/')[2].split('.')[0]
|
||||
else:
|
||||
set_region_id = 'ciri'
|
||||
@@ -236,6 +236,8 @@ def mocked_requests_get(*args, **kwargs):
|
||||
return MockGetResponse({}, 200, raw_data=MOCK_BYTES)
|
||||
elif args[0] == 'use_bad_response':
|
||||
return MockGetResponse(BAD_RESPONSE, 200)
|
||||
elif args[0] == 'reauth':
|
||||
return MockGetResponse({'message': 'REAUTH', 'code': 777}, 777)
|
||||
else:
|
||||
return MockGetResponse(RESPONSE, 200)
|
||||
|
||||
@@ -284,3 +286,15 @@ def get_test_id_table():
|
||||
element['device_type'] == 'camera'):
|
||||
test_id_table[str(element['device_id'])] = element['name']
|
||||
return test_id_table
|
||||
|
||||
|
||||
class MockURLHandler(object):
|
||||
"""Mocks URL Handler in blinkpy module."""
|
||||
|
||||
def __init__(self, region_id):
|
||||
"""Initialize the urls."""
|
||||
self.base_url = 'https://' + region_id + '.' + const.BLINK_URL
|
||||
self.home_url = 'reauth'
|
||||
self.event_url = self.base_url + '/events/network/'
|
||||
self.network_url = self.base_url + '/network/'
|
||||
self.networks_url = self.base_url + '/networks'
|
||||
@@ -171,3 +171,32 @@ class TestBlinkSetup(unittest.TestCase):
|
||||
self.assertEqual(self.blink.urls.event_url, test_urls.event_url)
|
||||
self.assertEqual(self.blink.urls.network_url, test_urls.network_url)
|
||||
self.assertEqual(self.blink.urls.networks_url, test_urls.networks_url)
|
||||
|
||||
@mock.patch('blinkpy.blinkpy.requests.post',
|
||||
side_effect=mresp.mocked_requests_post)
|
||||
@mock.patch('blinkpy.blinkpy.requests.get',
|
||||
side_effect=mresp.mocked_requests_get)
|
||||
@mock.patch('blinkpy.blinkpy.BlinkURLHandler',
|
||||
side_effect=mresp.MockURLHandler)
|
||||
def test_continuous_bad_auth(self, mock_url, mock_get, mock_post):
|
||||
"""Check that we don't get stuck if we can't reauthorize."""
|
||||
with self.assertRaises(blinkpy.BlinkAuthenticationException):
|
||||
self.blink.setup_system()
|
||||
|
||||
'''
|
||||
@mock.patch('blinkpy.blinkpy.requests.post',
|
||||
side_effect=mresp.mocked_requests_post)
|
||||
@mock.patch('blinkpy.blinkpy.requests.get',
|
||||
side_effect=mresp.mocked_requests_get)
|
||||
def test_reauthorization_attempt(self, mock_get, mock_post):
|
||||
"""Check that we can reauthorize after first unsuccessful attempt."""
|
||||
self.blink.setup_system()
|
||||
old_token = self.blink._token
|
||||
self.blink._token = 'BADTOKEN'
|
||||
(region_id, region), = mresp.LOGIN_RESPONSE['region'].items()
|
||||
test_urls = blinkpy.BlinkURLHandler(region_id)
|
||||
self.blink.urls.home_url = 'reauth'
|
||||
self.assertEqual(self.blink.refresh(), None)
|
||||
self.assertEqual(self.blink.urls.home_url, test_urls.home_url)
|
||||
|
||||
'''
|
||||
Reference in New Issue
Block a user