summaryrefslogtreecommitdiff
path: root/keystoneclient/tests/unit/apiclient
diff options
context:
space:
mode:
authorJamie Lennox <jamielennox@redhat.com>2015-02-11 19:03:25 +1100
committerJamie Lennox <jamielennox@redhat.com>2015-02-11 19:03:25 +1100
commit6bd93179a2966f2b5c67e297628510ac73689fb3 (patch)
treefaf3a93a16fb49b4a742f74b6fcdd20f8a0ebd0e /keystoneclient/tests/unit/apiclient
parent58ac2de5d4a6b58e8bd5d430a04199a4d40427a8 (diff)
downloadpython-keystoneclient-6bd93179a2966f2b5c67e297628510ac73689fb3.tar.gz
Move tests to the unit subdirectory
Move all the existing tests to the unit/ subdirectory. This gives us some room to add a functional/ directory later with other tests. Change-Id: I0fb8d5b628eb8ee1f35f05f42d0c0ac9f285e8c3 Implements: functional-testing
Diffstat (limited to 'keystoneclient/tests/unit/apiclient')
-rw-r--r--keystoneclient/tests/unit/apiclient/__init__.py0
-rw-r--r--keystoneclient/tests/unit/apiclient/test_exceptions.py68
2 files changed, 68 insertions, 0 deletions
diff --git a/keystoneclient/tests/unit/apiclient/__init__.py b/keystoneclient/tests/unit/apiclient/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/keystoneclient/tests/unit/apiclient/__init__.py
diff --git a/keystoneclient/tests/unit/apiclient/test_exceptions.py b/keystoneclient/tests/unit/apiclient/test_exceptions.py
new file mode 100644
index 0000000..4a803c7
--- /dev/null
+++ b/keystoneclient/tests/unit/apiclient/test_exceptions.py
@@ -0,0 +1,68 @@
+# Copyright 2012 OpenStack Foundation
+# All Rights Reserved.
+#
+# 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.
+
+import six
+
+from keystoneclient import exceptions
+from keystoneclient.tests.unit import utils
+
+
+class FakeResponse(object):
+ json_data = {}
+
+ def __init__(self, **kwargs):
+ for key, value in six.iteritems(kwargs):
+ setattr(self, key, value)
+
+ def json(self):
+ return self.json_data
+
+
+class ExceptionsArgsTest(utils.TestCase):
+
+ def assert_exception(self, ex_cls, method, url, status_code, json_data):
+ ex = exceptions.from_response(
+ FakeResponse(status_code=status_code,
+ headers={"Content-Type": "application/json"},
+ json_data=json_data),
+ method,
+ url)
+ self.assertIsInstance(ex, ex_cls)
+ self.assertEqual(ex.message, json_data["error"]["message"])
+ self.assertEqual(ex.details, json_data["error"]["details"])
+ self.assertEqual(ex.method, method)
+ self.assertEqual(ex.url, url)
+ self.assertEqual(ex.http_status, status_code)
+
+ def test_from_response_known(self):
+ method = "GET"
+ url = "/fake"
+ status_code = 400
+ json_data = {"error": {"message": "fake message",
+ "details": "fake details"}}
+ self.assert_exception(
+ exceptions.BadRequest, method, url, status_code, json_data)
+
+ def test_from_response_unknown(self):
+ method = "POST"
+ url = "/fake-unknown"
+ status_code = 499
+ json_data = {"error": {"message": "fake unknown message",
+ "details": "fake unknown details"}}
+ self.assert_exception(
+ exceptions.HTTPClientError, method, url, status_code, json_data)
+ status_code = 600
+ self.assert_exception(
+ exceptions.HTTPError, method, url, status_code, json_data)