summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-10-26 11:41:21 +0000
committerGerrit Code Review <review@openstack.org>2016-10-26 11:41:21 +0000
commite9887703d09bb42ddc3ab1f38855286f8d569ad6 (patch)
tree2962c689cf91a92e91bc10a62354855aba2015bc /tests
parenta0d1fe04bc9f9566986b0496a78562b5ec4702e1 (diff)
parent73e4296a389893c750f7c70a477ec828e4360197 (diff)
downloadpython-swiftclient-e9887703d09bb42ddc3ab1f38855286f8d569ad6.tar.gz
Merge "Adding keystoneauth sessions support"
Diffstat (limited to 'tests')
-rw-r--r--tests/unit/test_swiftclient.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/unit/test_swiftclient.py b/tests/unit/test_swiftclient.py
index 7d0dd9a..3534e14 100644
--- a/tests/unit/test_swiftclient.py
+++ b/tests/unit/test_swiftclient.py
@@ -573,6 +573,15 @@ class TestGetAuth(MockHttpTest):
self.assertTrue(url.startswith("http"))
self.assertTrue(token)
+ def test_auth_with_session(self):
+ mock_session = mock.MagicMock()
+ mock_session.get_endpoint.return_value = 'http://storagehost/v1/acct'
+ mock_session.get_token.return_value = 'token'
+ url, token = c.get_auth('http://www.test.com', 'asdf', 'asdf',
+ session=mock_session)
+ self.assertEqual(url, 'http://storagehost/v1/acct')
+ self.assertTrue(token)
+
class TestGetAccount(MockHttpTest):
@@ -2028,6 +2037,39 @@ class TestConnection(MockHttpTest):
('HEAD', '/v1/AUTH_test', '', {'x-auth-token': 'token'}),
])
+ def test_session_no_invalidate(self):
+ mock_session = mock.MagicMock()
+ mock_session.get_endpoint.return_value = 'http://storagehost/v1/acct'
+ mock_session.get_token.return_value = 'expired'
+ mock_session.invalidate.return_value = False
+ conn = c.Connection(session=mock_session)
+ fake_conn = self.fake_http_connection(401)
+ with mock.patch.multiple('swiftclient.client',
+ http_connection=fake_conn,
+ sleep=mock.DEFAULT):
+ self.assertRaises(c.ClientException, conn.head_account)
+ self.assertEqual(mock_session.get_token.mock_calls, [mock.call()])
+ self.assertEqual(mock_session.invalidate.mock_calls, [mock.call()])
+
+ def test_session_can_invalidate(self):
+ mock_session = mock.MagicMock()
+ mock_session.get_endpoint.return_value = 'http://storagehost/v1/acct'
+ mock_session.get_token.side_effect = ['expired', 'token']
+ mock_session.invalidate.return_value = True
+ conn = c.Connection(session=mock_session)
+ fake_conn = self.fake_http_connection(401, 200)
+ with mock.patch.multiple('swiftclient.client',
+ http_connection=fake_conn,
+ sleep=mock.DEFAULT):
+ conn.head_account()
+ self.assertRequests([
+ ('HEAD', '/v1/acct', '', {'x-auth-token': 'expired'}),
+ ('HEAD', '/v1/acct', '', {'x-auth-token': 'token'}),
+ ])
+ self.assertEqual(mock_session.get_token.mock_calls, [
+ mock.call(), mock.call()])
+ self.assertEqual(mock_session.invalidate.mock_calls, [mock.call()])
+
def test_preauth_token_with_no_storage_url_requires_auth(self):
conn = c.Connection(
'http://auth.example.com', 'user', 'password',