Adds certificate tests for keystone v3
This submission adds two test cases for identity to get_certificates.
Adds a script test_certificates.py and add two supporting functions
in json/identity_client.py
Change-Id: Ic67129c9bbad3683e01f2fae7a22bcf1e77d028d
diff --git a/tempest/api/identity/admin/v3/test_certificates.py b/tempest/api/identity/admin/v3/test_certificates.py
new file mode 100644
index 0000000..a53ee0a
--- /dev/null
+++ b/tempest/api/identity/admin/v3/test_certificates.py
@@ -0,0 +1,43 @@
+# Copyright 2014 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.
+
+from tempest.api.identity import base
+from tempest import test
+
+
+class CertificatesV3TestJSON(base.BaseIdentityV3AdminTest):
+ _interface = 'json'
+
+ def _verify_response(self, expected, actual):
+ missing_tags = [t for t in expected if t not in actual]
+ self.assertEqual(0, len(missing_tags),
+ "Failed to fetch expected tag"
+ "in the certificate: %s" % ','.join(missing_tags))
+
+ @test.attr(type='smoke')
+ def test_get_ca_certificate(self):
+ # Verify ca certificate chain
+ expected_tags = ['BEGIN CERTIFICATE', 'END CERTIFICATE']
+ resp, certificate = self.client.get_ca_certificate()
+ self.assertEqual(200, resp.status)
+ self._verify_response(expected_tags, certificate)
+
+ @test.attr(type='smoke')
+ def test_get_certificates(self):
+ # Verify signing certificates
+ expected_tags = ['Certificate', 'BEGIN CERTIFICATE', 'END CERTIFICATE']
+ resp, certificates = self.client.get_certificates()
+ self.assertEqual(200, resp.status)
+ self._verify_response(expected_tags, certificates)
diff --git a/tempest/services/identity/v3/json/identity_client.py b/tempest/services/identity/v3/json/identity_client.py
index 6829333..73e52a0 100644
--- a/tempest/services/identity/v3/json/identity_client.py
+++ b/tempest/services/identity/v3/json/identity_client.py
@@ -450,6 +450,16 @@
% (trust_id, role_id))
return resp, body
+ def get_ca_certificate(self):
+ """GET ca certificate chain."""
+ resp, body = self.get("OS-SIMPLE-CERT/ca")
+ return resp, body
+
+ def get_certificates(self):
+ """GET signing certificates used to sign tokens."""
+ resp, body = self.get("OS-SIMPLE-CERT/certificates")
+ return resp, body
+
class V3TokenClientJSON(rest_client.RestClient):