Merge pull request #27 from fronzbot/reauth-tests

Reauth tests
This commit is contained in:
Kevin Fronczak
2017-05-12 15:08:44 -04:00
committed by GitHub
2 changed files with 50 additions and 2 deletions
+22 -2
View File
@@ -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'
+28
View File
@@ -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)