summaryrefslogtreecommitdiff
path: root/keystoneclient/tests/test_https.py
diff options
context:
space:
mode:
authorJamie Lennox <jamielennox@redhat.com>2013-09-30 10:35:55 +1000
committerJamie Lennox <jamielennox@redhat.com>2013-11-28 09:20:43 +1000
commit2c5dcf9bf19d16e9ac8125ea571a94b4f37a3298 (patch)
treeebdb174418aedb4b496b2a229deb961a07c45085 /keystoneclient/tests/test_https.py
parent30ab23854c3411a0a4f03e5640b0dd596214e2e1 (diff)
downloadpython-keystoneclient-2c5dcf9bf19d16e9ac8125ea571a94b4f37a3298.tar.gz
Extract a base Session object
A wrapper around a number of connection variables. This will be extended later with principals such as Kerberos authentication and http sessions. The intent is that this session object will become the basis for all other client library communications in OpenStack (as keystone wants to control things like authentication for everybody). Change-Id: I8ee728c49d554659d7057ebf17d0f8ceea4d7d8e Part of: blueprint auth-plugins
Diffstat (limited to 'keystoneclient/tests/test_https.py')
-rw-r--r--keystoneclient/tests/test_https.py95
1 files changed, 49 insertions, 46 deletions
diff --git a/keystoneclient/tests/test_https.py b/keystoneclient/tests/test_https.py
index 1477720..b4a955b 100644
--- a/keystoneclient/tests/test_https.py
+++ b/keystoneclient/tests/test_https.py
@@ -17,13 +17,13 @@ import mock
import requests
from keystoneclient import httpclient
+from keystoneclient import session
from keystoneclient.tests import utils
FAKE_RESPONSE = utils.TestResponse({
"status_code": 200,
"text": '{"hi": "there"}',
})
-MOCK_REQUEST = mock.Mock(return_value=(FAKE_RESPONSE))
REQUEST_URL = 'https://127.0.0.1:5000/hi'
RESPONSE_BODY = '{"hi": "there"}'
@@ -55,56 +55,59 @@ class ClientTest(utils.TestCase):
self.request_patcher.stop()
super(ClientTest, self).tearDown()
- def test_get(self):
+ @mock.patch.object(session.requests.Session, 'request')
+ def test_get(self, MOCK_REQUEST):
+ MOCK_REQUEST.return_value = FAKE_RESPONSE
cl = get_authed_client()
- with mock.patch.object(requests, "request", MOCK_REQUEST):
- resp, body = cl.get("/hi")
+ resp, body = cl.get("/hi")
- # this may become too tightly couple later
- mock_args, mock_kwargs = MOCK_REQUEST.call_args
+ # this may become too tightly couple later
+ mock_args, mock_kwargs = MOCK_REQUEST.call_args
- self.assertEqual(mock_args[0], 'GET')
- self.assertEqual(mock_args[1], REQUEST_URL)
- self.assertEqual(mock_kwargs['headers']['X-Auth-Token'], 'token')
- self.assertEqual(mock_kwargs['cert'], ('cert.pem', 'key.pem'))
- self.assertEqual(mock_kwargs['verify'], 'ca.pem')
+ self.assertEqual(mock_args[0], 'GET')
+ self.assertEqual(mock_args[1], REQUEST_URL)
+ self.assertEqual(mock_kwargs['headers']['X-Auth-Token'], 'token')
+ self.assertEqual(mock_kwargs['cert'], ('cert.pem', 'key.pem'))
+ self.assertEqual(mock_kwargs['verify'], 'ca.pem')
- # Automatic JSON parsing
- self.assertEqual(body, {"hi": "there"})
+ # Automatic JSON parsing
+ self.assertEqual(body, {"hi": "there"})
- def test_post(self):
+ @mock.patch.object(session.requests.Session, 'request')
+ def test_post(self, MOCK_REQUEST):
+ MOCK_REQUEST.return_value = FAKE_RESPONSE
cl = get_authed_client()
- with mock.patch.object(requests, "request", MOCK_REQUEST):
- cl.post("/hi", body=[1, 2, 3])
-
- # this may become too tightly couple later
- mock_args, mock_kwargs = MOCK_REQUEST.call_args
-
- self.assertEqual(mock_args[0], 'POST')
- self.assertEqual(mock_args[1], REQUEST_URL)
- self.assertEqual(mock_kwargs['data'], '[1, 2, 3]')
- self.assertEqual(mock_kwargs['headers']['X-Auth-Token'], 'token')
- self.assertEqual(mock_kwargs['cert'], ('cert.pem', 'key.pem'))
- self.assertEqual(mock_kwargs['verify'], 'ca.pem')
-
- def test_post_auth(self):
- with mock.patch.object(requests, "request", MOCK_REQUEST):
- cl = httpclient.HTTPClient(
- username="username", password="password", tenant_id="tenant",
- auth_url="auth_test", cacert="ca.pem", key="key.pem",
- cert="cert.pem")
- cl.management_url = "https://127.0.0.1:5000"
- cl.auth_token = "token"
- cl.post("/hi", body=[1, 2, 3])
-
- # this may become too tightly couple later
- mock_args, mock_kwargs = MOCK_REQUEST.call_args
-
- self.assertEqual(mock_args[0], 'POST')
- self.assertEqual(mock_args[1], REQUEST_URL)
- self.assertEqual(mock_kwargs['data'], '[1, 2, 3]')
- self.assertEqual(mock_kwargs['headers']['X-Auth-Token'], 'token')
- self.assertEqual(mock_kwargs['cert'], ('cert.pem', 'key.pem'))
- self.assertEqual(mock_kwargs['verify'], 'ca.pem')
+ cl.post("/hi", body=[1, 2, 3])
+
+ # this may become too tightly couple later
+ mock_args, mock_kwargs = MOCK_REQUEST.call_args
+
+ self.assertEqual(mock_args[0], 'POST')
+ self.assertEqual(mock_args[1], REQUEST_URL)
+ self.assertEqual(mock_kwargs['data'], '[1, 2, 3]')
+ self.assertEqual(mock_kwargs['headers']['X-Auth-Token'], 'token')
+ self.assertEqual(mock_kwargs['cert'], ('cert.pem', 'key.pem'))
+ self.assertEqual(mock_kwargs['verify'], 'ca.pem')
+
+ @mock.patch.object(session.requests.Session, 'request')
+ def test_post_auth(self, MOCK_REQUEST):
+ MOCK_REQUEST.return_value = FAKE_RESPONSE
+ cl = httpclient.HTTPClient(
+ username="username", password="password", tenant_id="tenant",
+ auth_url="auth_test", cacert="ca.pem", key="key.pem",
+ cert="cert.pem")
+ cl.management_url = "https://127.0.0.1:5000"
+ cl.auth_token = "token"
+ cl.post("/hi", body=[1, 2, 3])
+
+ # this may become too tightly couple later
+ mock_args, mock_kwargs = MOCK_REQUEST.call_args
+
+ self.assertEqual(mock_args[0], 'POST')
+ self.assertEqual(mock_args[1], REQUEST_URL)
+ self.assertEqual(mock_kwargs['data'], '[1, 2, 3]')
+ self.assertEqual(mock_kwargs['headers']['X-Auth-Token'], 'token')
+ self.assertEqual(mock_kwargs['cert'], ('cert.pem', 'key.pem'))
+ self.assertEqual(mock_kwargs['verify'], 'ca.pem')