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:
Kevin Fronczak
2017-05-12 14:03:35 -04:00
parent 565e3e1b9d
commit d290fe4096
2 changed files with 44 additions and 1 deletions
+15 -1
View File
@@ -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'
+29
View File
@@ -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)
'''