summaryrefslogtreecommitdiff
path: root/openstackclient/tests
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2014-09-17 07:25:28 +0000
committerGerrit Code Review <review@openstack.org>2014-09-17 07:25:28 +0000
commitd9a6f7fd3a26589f8d3cfb14fd568c93e9770c8e (patch)
treebbf8a5c85746c0f0891e26deecdb10195d82b8f2 /openstackclient/tests
parent0ff189720ef821733bcf727249b1e13f73a3584e (diff)
parentae957b176e5918f41024c00cbc39ea371a0c37c6 (diff)
downloadpython-openstackclient-d9a6f7fd3a26589f8d3cfb14fd568c93e9770c8e.tar.gz
Merge "Use Keystone client session.Session"
Diffstat (limited to 'openstackclient/tests')
-rw-r--r--openstackclient/tests/common/test_clientmanager.py40
-rw-r--r--openstackclient/tests/common/test_restapi.py341
-rw-r--r--openstackclient/tests/identity/v2_0/fakes.py1
-rw-r--r--openstackclient/tests/identity/v2_0/test_token.py7
4 files changed, 23 insertions, 366 deletions
diff --git a/openstackclient/tests/common/test_clientmanager.py b/openstackclient/tests/common/test_clientmanager.py
index 5a25fa2c..0bb657ad 100644
--- a/openstackclient/tests/common/test_clientmanager.py
+++ b/openstackclient/tests/common/test_clientmanager.py
@@ -13,8 +13,10 @@
# under the License.
#
+import mock
+
+from keystoneclient.auth.identity import v2 as auth_v2
from openstackclient.common import clientmanager
-from openstackclient.common import restapi
from openstackclient.tests import utils
@@ -25,6 +27,10 @@ USERNAME = "itchy"
PASSWORD = "scratchy"
SERVICE_CATALOG = {'sc': '123'}
+API_VERSION = {
+ 'identity': '2.0',
+}
+
def FakeMakeClient(instance):
return FakeClient()
@@ -52,6 +58,7 @@ class TestClientCache(utils.TestCase):
self.assertEqual(c.attr, c.attr)
+@mock.patch('keystoneclient.session.Session')
class TestClientManager(utils.TestCase):
def setUp(self):
super(TestClientManager, self).setUp()
@@ -59,12 +66,13 @@ class TestClientManager(utils.TestCase):
clientmanager.ClientManager.identity = \
clientmanager.ClientCache(FakeMakeClient)
- def test_client_manager_token(self):
+ def test_client_manager_token(self, mock):
client_manager = clientmanager.ClientManager(
token=AUTH_TOKEN,
url=AUTH_URL,
verify=True,
+ api_version=API_VERSION,
)
self.assertEqual(
@@ -76,19 +84,20 @@ class TestClientManager(utils.TestCase):
client_manager._url,
)
self.assertIsInstance(
- client_manager.session,
- restapi.RESTApi,
+ client_manager.auth,
+ auth_v2.Token,
)
self.assertFalse(client_manager._insecure)
self.assertTrue(client_manager._verify)
- def test_client_manager_password(self):
+ def test_client_manager_password(self, mock):
client_manager = clientmanager.ClientManager(
auth_url=AUTH_URL,
username=USERNAME,
password=PASSWORD,
verify=False,
+ api_version=API_VERSION,
)
self.assertEqual(
@@ -104,33 +113,20 @@ class TestClientManager(utils.TestCase):
client_manager._password,
)
self.assertIsInstance(
- client_manager.session,
- restapi.RESTApi,
+ client_manager.auth,
+ auth_v2.Password,
)
self.assertTrue(client_manager._insecure)
self.assertFalse(client_manager._verify)
- # These need to stick around until the old-style clients are gone
- self.assertEqual(
- AUTH_REF,
- client_manager.auth_ref,
- )
- self.assertEqual(
- AUTH_TOKEN,
- client_manager._token,
- )
- self.assertEqual(
- SERVICE_CATALOG,
- client_manager._service_catalog,
- )
-
- def test_client_manager_password_verify_ca(self):
+ def test_client_manager_password_verify_ca(self, mock):
client_manager = clientmanager.ClientManager(
auth_url=AUTH_URL,
username=USERNAME,
password=PASSWORD,
verify='cafile',
+ api_version=API_VERSION,
)
self.assertFalse(client_manager._insecure)
diff --git a/openstackclient/tests/common/test_restapi.py b/openstackclient/tests/common/test_restapi.py
deleted file mode 100644
index d4fe2d3d..00000000
--- a/openstackclient/tests/common/test_restapi.py
+++ /dev/null
@@ -1,341 +0,0 @@
-# Copyright 2013 Nebula Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""Test rest module"""
-
-import json
-import mock
-
-import requests
-import six
-
-from openstackclient.common import restapi
-from openstackclient.tests import utils
-
-fake_user_agent = 'test_rapi'
-
-fake_auth = '11223344556677889900'
-fake_url = 'http://gopher.com'
-fake_key = 'gopher'
-fake_keys = 'gophers'
-fake_gopher_mac = {
- 'id': 'g1',
- 'name': 'mac',
- 'actor': 'Mel Blanc',
-}
-fake_gopher_tosh = {
- 'id': 'g2',
- 'name': 'tosh',
- 'actor': 'Stan Freeberg',
-}
-fake_gopher_single = {
- fake_key: fake_gopher_mac,
-}
-fake_gopher_list = {
- fake_keys:
- [
- fake_gopher_mac,
- fake_gopher_tosh,
- ]
-}
-fake_headers = {
- 'User-Agent': fake_user_agent,
-}
-
-
-class FakeResponse(requests.Response):
- def __init__(self, headers={}, status_code=200, data=None, encoding=None):
- super(FakeResponse, self).__init__()
-
- self.status_code = status_code
-
- self.headers.update(headers)
- self._content = json.dumps(data)
- if not isinstance(self._content, six.binary_type):
- self._content = self._content.encode()
-
-
-@mock.patch('openstackclient.common.restapi.requests.Session')
-class TestRESTApi(utils.TestCase):
-
- def test_request_get(self, session_mock):
- resp = FakeResponse(status_code=200, data=fake_gopher_single)
- session_mock.return_value = mock.MagicMock(
- request=mock.MagicMock(return_value=resp),
- )
-
- api = restapi.RESTApi(
- user_agent=fake_user_agent,
- )
- gopher = api.request('GET', fake_url)
- session_mock.return_value.request.assert_called_with(
- 'GET',
- fake_url,
- headers={},
- allow_redirects=True,
- )
- self.assertEqual(gopher.status_code, 200)
- self.assertEqual(gopher.json(), fake_gopher_single)
-
- def test_request_get_return_300(self, session_mock):
- resp = FakeResponse(status_code=300, data=fake_gopher_single)
- session_mock.return_value = mock.MagicMock(
- request=mock.MagicMock(return_value=resp),
- )
-
- api = restapi.RESTApi(
- user_agent=fake_user_agent,
- )
- gopher = api.request('GET', fake_url)
- session_mock.return_value.request.assert_called_with(
- 'GET',
- fake_url,
- headers={},
- allow_redirects=True,
- )
- self.assertEqual(gopher.status_code, 300)
- self.assertEqual(gopher.json(), fake_gopher_single)
-
- def test_request_get_fail_404(self, session_mock):
- resp = FakeResponse(status_code=404, data=fake_gopher_single)
- session_mock.return_value = mock.MagicMock(
- request=mock.MagicMock(return_value=resp),
- )
-
- api = restapi.RESTApi(
- user_agent=fake_user_agent,
- )
- self.assertRaises(requests.HTTPError, api.request, 'GET', fake_url)
- session_mock.return_value.request.assert_called_with(
- 'GET',
- fake_url,
- headers={},
- allow_redirects=True,
- )
-
- def test_request_get_auth(self, session_mock):
- resp = FakeResponse(data=fake_gopher_single)
- session_mock.return_value = mock.MagicMock(
- request=mock.MagicMock(return_value=resp),
- headers=mock.MagicMock(return_value={}),
- )
-
- api = restapi.RESTApi(
- auth_header=fake_auth,
- user_agent=fake_user_agent,
- )
- gopher = api.request('GET', fake_url)
- session_mock.return_value.request.assert_called_with(
- 'GET',
- fake_url,
- headers={
- 'X-Auth-Token': fake_auth,
- },
- allow_redirects=True,
- )
- self.assertEqual(gopher.json(), fake_gopher_single)
-
- def test_request_post(self, session_mock):
- resp = FakeResponse(data=fake_gopher_single)
- session_mock.return_value = mock.MagicMock(
- request=mock.MagicMock(return_value=resp),
- )
-
- api = restapi.RESTApi(
- user_agent=fake_user_agent,
- )
- data = fake_gopher_tosh
- gopher = api.request('POST', fake_url, json=data)
- session_mock.return_value.request.assert_called_with(
- 'POST',
- fake_url,
- headers={
- 'Content-Type': 'application/json',
- },
- allow_redirects=True,
- data=json.dumps(data),
- )
- self.assertEqual(gopher.json(), fake_gopher_single)
-
- # Methods
- # TODO(dtroyer): add the other method methods
-
- def test_delete(self, session_mock):
- resp = FakeResponse(status_code=200, data=None)
- session_mock.return_value = mock.MagicMock(
- request=mock.MagicMock(return_value=resp),
- )
-
- api = restapi.RESTApi()
- gopher = api.delete(fake_url)
- session_mock.return_value.request.assert_called_with(
- 'DELETE',
- fake_url,
- headers=mock.ANY,
- allow_redirects=True,
- )
- self.assertEqual(gopher.status_code, 200)
-
- # Commands
-
- def test_create(self, session_mock):
- resp = FakeResponse(data=fake_gopher_single)
- session_mock.return_value = mock.MagicMock(
- request=mock.MagicMock(return_value=resp),
- )
-
- api = restapi.RESTApi()
- data = fake_gopher_mac
-
- # Test no key
- gopher = api.create(fake_url, data=data)
- session_mock.return_value.request.assert_called_with(
- 'POST',
- fake_url,
- headers=mock.ANY,
- allow_redirects=True,
- data=json.dumps(data),
- )
- self.assertEqual(gopher, fake_gopher_single)
-
- # Test with key
- gopher = api.create(fake_url, data=data, response_key=fake_key)
- session_mock.return_value.request.assert_called_with(
- 'POST',
- fake_url,
- headers=mock.ANY,
- allow_redirects=True,
- data=json.dumps(data),
- )
- self.assertEqual(gopher, fake_gopher_mac)
-
- def test_list(self, session_mock):
- resp = FakeResponse(data=fake_gopher_list)
- session_mock.return_value = mock.MagicMock(
- request=mock.MagicMock(return_value=resp),
- )
-
- # test base
- api = restapi.RESTApi()
- gopher = api.list(fake_url, response_key=fake_keys)
- session_mock.return_value.request.assert_called_with(
- 'GET',
- fake_url,
- headers=mock.ANY,
- allow_redirects=True,
- )
- self.assertEqual(gopher, [fake_gopher_mac, fake_gopher_tosh])
-
- # test body
- api = restapi.RESTApi()
- data = {'qwerty': 1}
- gopher = api.list(fake_url, response_key=fake_keys, data=data)
- session_mock.return_value.request.assert_called_with(
- 'POST',
- fake_url,
- headers=mock.ANY,
- allow_redirects=True,
- data=json.dumps(data),
- )
- self.assertEqual(gopher, [fake_gopher_mac, fake_gopher_tosh])
-
- # test query params
- api = restapi.RESTApi()
- params = {'qaz': '123'}
- gophers = api.list(fake_url, response_key=fake_keys, params=params)
- session_mock.return_value.request.assert_called_with(
- 'GET',
- fake_url,
- headers=mock.ANY,
- allow_redirects=True,
- params=params,
- )
- self.assertEqual(gophers, [fake_gopher_mac, fake_gopher_tosh])
-
- def test_set(self, session_mock):
- new_gopher = fake_gopher_single
- new_gopher[fake_key]['name'] = 'Chip'
- resp = FakeResponse(data=fake_gopher_single)
- session_mock.return_value = mock.MagicMock(
- request=mock.MagicMock(return_value=resp),
- )
-
- api = restapi.RESTApi()
- data = fake_gopher_mac
- data['name'] = 'Chip'
-
- # Test no data, no key
- gopher = api.set(fake_url)
- session_mock.return_value.request.assert_called_with(
- 'PUT',
- fake_url,
- headers=mock.ANY,
- allow_redirects=True,
- json=None,
- )
- self.assertEqual(gopher, None)
-
- # Test data, no key
- gopher = api.set(fake_url, data=data)
- session_mock.return_value.request.assert_called_with(
- 'PUT',
- fake_url,
- headers=mock.ANY,
- allow_redirects=True,
- data=json.dumps(data),
- )
- self.assertEqual(gopher, fake_gopher_single)
-
- # NOTE:(dtroyer): Key and no data is not tested as without data
- # the response_key is moot
-
- # Test data and key
- gopher = api.set(fake_url, data=data, response_key=fake_key)
- session_mock.return_value.request.assert_called_with(
- 'PUT',
- fake_url,
- headers=mock.ANY,
- allow_redirects=True,
- data=json.dumps(data),
- )
- self.assertEqual(gopher, fake_gopher_mac)
-
- def test_show(self, session_mock):
- resp = FakeResponse(data=fake_gopher_single)
- session_mock.return_value = mock.MagicMock(
- request=mock.MagicMock(return_value=resp),
- )
-
- api = restapi.RESTApi()
-
- # Test no key
- gopher = api.show(fake_url)
- session_mock.return_value.request.assert_called_with(
- 'GET',
- fake_url,
- headers=mock.ANY,
- allow_redirects=True,
- )
- self.assertEqual(gopher, fake_gopher_single)
-
- # Test with key
- gopher = api.show(fake_url, response_key=fake_key)
- session_mock.return_value.request.assert_called_with(
- 'GET',
- fake_url,
- headers=mock.ANY,
- allow_redirects=True,
- )
- self.assertEqual(gopher, fake_gopher_mac)
diff --git a/openstackclient/tests/identity/v2_0/fakes.py b/openstackclient/tests/identity/v2_0/fakes.py
index a8438e96..b136f841 100644
--- a/openstackclient/tests/identity/v2_0/fakes.py
+++ b/openstackclient/tests/identity/v2_0/fakes.py
@@ -125,7 +125,6 @@ class FakeIdentityv2Client(object):
def __init__(self, **kwargs):
self.roles = mock.Mock()
self.roles.resource_class = fakes.FakeResource(None, {})
- self.service_catalog = mock.Mock()
self.services = mock.Mock()
self.services.resource_class = fakes.FakeResource(None, {})
self.tenants = mock.Mock()
diff --git a/openstackclient/tests/identity/v2_0/test_token.py b/openstackclient/tests/identity/v2_0/test_token.py
index e094ad4a..4184326c 100644
--- a/openstackclient/tests/identity/v2_0/test_token.py
+++ b/openstackclient/tests/identity/v2_0/test_token.py
@@ -13,6 +13,8 @@
# under the License.
#
+import mock
+
from openstackclient.identity.v2_0 import token
from openstackclient.tests.identity.v2_0 import fakes as identity_fakes
@@ -23,8 +25,9 @@ class TestToken(identity_fakes.TestIdentityv2):
super(TestToken, self).setUp()
# Get a shortcut to the Service Catalog Mock
- self.sc_mock = self.app.client_manager.identity.service_catalog
- self.sc_mock.reset_mock()
+ self.sc_mock = mock.Mock()
+ self.app.client_manager.auth_ref = mock.Mock()
+ self.app.client_manager.auth_ref.service_catalog = self.sc_mock
class TestTokenIssue(TestToken):