summaryrefslogtreecommitdiff
path: root/keystoneclient/tests/v3/test_discover.py
diff options
context:
space:
mode:
Diffstat (limited to 'keystoneclient/tests/v3/test_discover.py')
-rw-r--r--keystoneclient/tests/v3/test_discover.py87
1 files changed, 87 insertions, 0 deletions
diff --git a/keystoneclient/tests/v3/test_discover.py b/keystoneclient/tests/v3/test_discover.py
new file mode 100644
index 0000000..994f959
--- /dev/null
+++ b/keystoneclient/tests/v3/test_discover.py
@@ -0,0 +1,87 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# 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 json
+
+import httpretty
+
+from keystoneclient.generic import client
+from keystoneclient.tests.v3 import utils
+
+
+class DiscoverKeystoneTests(utils.UnauthenticatedTestCase):
+ def setUp(self):
+ super(DiscoverKeystoneTests, self).setUp()
+ self.TEST_RESPONSE_DICT = {
+ "versions": {
+ "values": [{"id": "v3.0",
+ "status": "beta",
+ "updated": "2013-03-06T00:00:00Z",
+ "links": [
+ {"rel": "self",
+ "href": "http://127.0.0.1:5000/v3.0/", },
+ {"rel": "describedby",
+ "type": "text/html",
+ "href": "http://docs.openstack.org/api/"
+ "openstack-identity-service/3/"
+ "content/", },
+ {"rel": "describedby",
+ "type": "application/pdf",
+ "href": "http://docs.openstack.org/api/"
+ "openstack-identity-service/3/"
+ "identity-dev-guide-3.pdf", },
+ ]},
+ {"id": "v2.0",
+ "status": "beta",
+ "updated": "2013-03-06T00:00:00Z",
+ "links": [
+ {"rel": "self",
+ "href": "http://127.0.0.1:5000/v2.0/", },
+ {"rel": "describedby",
+ "type": "text/html",
+ "href": "http://docs.openstack.org/api/"
+ "openstack-identity-service/2.0/"
+ "content/", },
+ {"rel": "describedby",
+ "type": "application/pdf",
+ "href": "http://docs.openstack.org/api/"
+ "openstack-identity-service/2.0/"
+ "identity-dev-guide-2.0.pdf", }
+ ]}],
+ },
+ }
+ self.TEST_REQUEST_HEADERS = {
+ 'User-Agent': 'python-keystoneclient',
+ 'Accept': 'application/json',
+ }
+
+ @httpretty.activate
+ def test_get_version_local(self):
+ httpretty.register_uri(httpretty.GET, "http://localhost:35357/",
+ status=300,
+ body=json.dumps(self.TEST_RESPONSE_DICT))
+
+ cs = client.Client()
+ versions = cs.discover()
+ self.assertIsInstance(versions, dict)
+ self.assertIn('message', versions)
+ self.assertIn('v3.0', versions)
+ self.assertEquals(
+ versions['v3.0']['url'],
+ self.TEST_RESPONSE_DICT['versions']['values'][0]['links'][0]
+ ['href'])
+ self.assertEquals(
+ versions['v2.0']['url'],
+ self.TEST_RESPONSE_DICT['versions']['values'][1]['links'][0]
+ ['href'])