+22
-2
@@ -214,10 +214,16 @@ def mocked_requests_get(*args, **kwargs):
|
||||
def raw(self):
|
||||
"""Return raw data from get request."""
|
||||
return self.raw_data
|
||||
|
||||
rx_header = kwargs.pop('headers')
|
||||
expected_token = LOGIN_RESPONSE['authtoken']['authtoken']
|
||||
# pylint: disable=unused-variable
|
||||
if ('Content-Type' not in rx_header
|
||||
and rx_header['TOKEN_AUTH'] != expected_token):
|
||||
return MockGetResponse({'message': 'Not Authorized', 'code': 400}, 400)
|
||||
|
||||
(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 +242,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 +292,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,31 @@ 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()
|
||||
# pylint: disable=protected-access
|
||||
original_header = self.blink._auth_header
|
||||
bad_header = {'Host': self.blink._host, 'TOKEN_AUTH': 'BADTOKEN'}
|
||||
self.blink._auth_header = bad_header
|
||||
# pylint: disable=protected-access
|
||||
self.assertEqual(self.blink._auth_header, bad_header)
|
||||
self.blink.get_summary()
|
||||
# pylint: disable=protected-access
|
||||
self.assertEqual(self.blink._auth_header, original_header)
|
||||
|
||||
Reference in New Issue
Block a user