diff options
| author | Jamie Lennox <jamielennox@redhat.com> | 2013-09-30 10:35:55 +1000 |
|---|---|---|
| committer | Jamie Lennox <jamielennox@redhat.com> | 2013-11-28 09:20:43 +1000 |
| commit | 2c5dcf9bf19d16e9ac8125ea571a94b4f37a3298 (patch) | |
| tree | ebdb174418aedb4b496b2a229deb961a07c45085 /keystoneclient/tests/test_https.py | |
| parent | 30ab23854c3411a0a4f03e5640b0dd596214e2e1 (diff) | |
| download | python-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.py | 95 |
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') |
