def test_oAuthenticator2_check_prefixes(self): """ Asserts that OAuth and Bearer tokens are valid perfixes as part of the Authenticator header """ oauth_token = {"email": "*****@*****.**"} # Check Bearer prefix with patch.object(Authenticator, '_verify_access_token', return_value=oauth_token): request = MagicMock() request.get_header = MagicMock(return_value="Bearer 12345") user = Authenticator.authenticate(request=request) Authenticator.\ _verify_access_token.assert_called_once_with("12345") self.assertEqual(user.name, oauth_token["email"]) # Check OAuth prefix with patch.object(Authenticator, '_verify_access_token', return_value=oauth_token): request = MagicMock() request.get_header = MagicMock(return_value="OAuth 45678") user = Authenticator.authenticate(request=request) Authenticator.\ _verify_access_token.assert_called_once_with("45678") self.assertEqual('*****@*****.**', user.name) # patch _validate_token and verify since _verify_access_token's purpose # is to add error mgmt. to _validate_token's result with patch.object(Authenticator, '_validate_token', return_value=oauth_token): request = MagicMock() request.get_header = MagicMock(return_value="Bearer 12345") user = Authenticator.authenticate(request=request) Authenticator. \ _validate_token.assert_called_once_with("12345") self.assertEqual('*****@*****.**', user.name)
def test_oAuthenticator2_invalid_prefix(self): """ Asserts that when header's prefix is not Bearer nor OAuth, Unauthorized is raised """ # Check Bearer prefix request = MagicMock() request.get_header = MagicMock(return_value="NonBearer 12345") with self.assertRaises(Unauthorized): Authenticator.authenticate(request=request)
def test_request_access_failure(self): """ Asserts exception from _validate_token propagates to Authenticate """ with patch.object(Authenticator, '_validate_token', side_effect=RuntimeError): request = MagicMock() request.get_header = MagicMock(return_value="OAuth 45678") with self.assertRaises(Unauthorized): Authenticator.authenticate(request=request)
def test_verify_access_token_error(self): """ Asserts that when token returns an 'error_description' field, Unauthorized is raised """ oauth_token = {"error_description": "Invalid Scope"} with patch.object(Authenticator, '_validate_token', return_value=oauth_token): request = MagicMock() request.get_header = MagicMock(return_value="OAuth 45678") with self.assertRaises(Unauthorized): Authenticator.authenticate(request=request)