def test_get_token_raises_on_response_code_500(self, mock_jinja_env, mock_requests): # type: (MagicMock, MagicMock) -> None # Arrange username = '' passwd = '' mock_requests.post.return_value = resp = MagicMock() resp.ok = False resp.headers.get.return_value = ('application/soap+xml') resp.status_code = 500 resp.content = ''' <Envelope> <Body> <RequestSecurityTokenResponse> <RequestedSecurityToken> <Assertion whatever='1'></Assertion> </RequestedSecurityToken> </RequestSecurityTokenResponse> </Body> </Envelope> ''' # Act with self.assertRaises(Exception): tokens.get_token(username, passwd)
def test_get_token_raises_stored_response_error(self, mock_jinja_env, mock_requests): from requests import HTTPError # type: (MagicMock, MagicMock) -> None # Arrange username = '' passwd = '' mock_requests.post.return_value = resp = MagicMock() resp.ok = False resp.raise_for_status.side_effect = HTTPError resp.content = ''' <Envelope> <Body> <RequestSecurityTokenResponse> <RequestedSecurityToken> <Assertion whatever='1'></Assertion> <Assertion whatever='1'></Assertion> </RequestedSecurityToken> </RequestSecurityTokenResponse> </Body> </Envelope> ''' # Act with self.assertRaises(HTTPError): tokens.get_token(username, passwd)
def test_get_token_raises_on_too_many_tokens(self, mock_jinja_env, mock_requests): # type: (MagicMock, MagicMock) -> None # Arrange username = '' passwd = '' mock_requests.post.return_value = resp = MagicMock() resp.ok = True resp.content = ''' <Envelope> <Body> <RequestSecurityTokenResponse> <RequestedSecurityToken> <Assertion whatever='1'></Assertion> <Assertion whatever='1'></Assertion> </RequestedSecurityToken> </RequestSecurityTokenResponse> </Body> </Envelope> ''' # Act with self.assertRaises(KeyError): tokens.get_token(username, passwd)
def test_wso2_login_failure(self, m): m.post( 'http://example.com/auth', text=util.get_fixture('wso2-failed-login.xml'), ) with self.assertRaises(Exception) as cm: tokens.get_token('hest', 'fest') self.assertEqual( cm.exception.args, ('The security token could not be authenticated or authorized', ))
def test_get_token(self, mock_requests): # type: (MagicMock, MagicMock) -> None # Arrange username = '' passwd = '' mock_requests.post.return_value = resp = MagicMock() resp.ok = True resp.content = ''' <Body> <RequestSecurityTokenResponse> <RequestedSecurityToken> <Assertion whatever='1'></Assertion> </RequestedSecurityToken> </RequestSecurityTokenResponse> </Body> ''' expected_result = (b'saml-gzipped H4sIAAAAAAAC/7NxLC5OLSrJzM9TKM9I' b'LEktSy2yVTJU0rfjUkADALryg9gqAAAA') # Act actual_result = tokens.get_token(username, passwd) # Assert self.assertEqual(expected_result, actual_result)
def test_get_token_pretty_printed(self, mock_jinja_env, mock_requests): # type: (MagicMock, MagicMock, MagicMock) -> None # Arrange username = '' passwd = '' mock_requests.post.return_value = resp = MagicMock() resp.ok = True resp.content = ''' <Body> <RequestSecurityTokenResponse> <RequestedSecurityToken> <Assertion whatever="1"> <Issuer>issuer</Issuer> <Subject>subject</Subject> <Conditions>conditions</Conditions> </Assertion> </RequestedSecurityToken> </RequestSecurityTokenResponse> </Body>''' expected = b'''<Assertion whatever="1"> <Issuer>issuer</Issuer> <Subject>subject</Subject> <Conditions>conditions</Conditions> </Assertion> \n''' # Act actual = tokens.get_token(username, passwd, pretty_print=True) # Assert self.assertEqual(expected, actual)
def test_adfs_login(self, m): m.post( 'http://example.com/auth', text=util.get_fixture('adfs-successful-login.xml'), ) assertion = util.get_fixture('adfs-assertion.txt', 'rb') self.assertEqual(assertion, tokens.get_token('hest', 'fest'))
def test_get_token_raises_on_fault(self, mock_jinja_env, mock_requests): # type: (MagicMock, MagicMock) -> None # Arrange username = '' passwd = '' mock_requests.post.return_value = resp = MagicMock() resp.ok = True resp.content = ''' <Envelope> <Body> <Fault></Fault> </Body> </Envelope> ''' # Act with self.assertRaises(Exception): tokens.get_token(username, passwd)