From 1b6aa2d1af3d65f381aa9c57cc80531704c0ca8a Mon Sep 17 00:00:00 2001 From: Russell Bryant Date: Mon, 7 May 2012 14:13:44 -0400 Subject: Add version to the cert rpc API. Part of blueprint versioned-rpc-apis. Change-Id: Iea00a2e82eef7ca7b3ffef438e81e5b4fcca7751 --- nova/tests/cert/__init__.py | 19 +++++++++ nova/tests/cert/test_rpcapi.py | 93 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 112 insertions(+) create mode 100644 nova/tests/cert/__init__.py create mode 100644 nova/tests/cert/test_rpcapi.py (limited to 'nova/tests') diff --git a/nova/tests/cert/__init__.py b/nova/tests/cert/__init__.py new file mode 100644 index 000000000..7e04e7c73 --- /dev/null +++ b/nova/tests/cert/__init__.py @@ -0,0 +1,19 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright 2011 OpenStack LLC. +# 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. + +# NOTE(vish): this forces the fixtures from tests/__init.py:setup() to work +from nova.tests import * diff --git a/nova/tests/cert/test_rpcapi.py b/nova/tests/cert/test_rpcapi.py new file mode 100644 index 000000000..2e3feeaaf --- /dev/null +++ b/nova/tests/cert/test_rpcapi.py @@ -0,0 +1,93 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright 2012, Red Hat, 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. + +""" +Unit Tests for nova.cert.rpcapi +""" + +from nova.cert import rpcapi as cert_rpcapi +from nova import context +from nova import flags +from nova import rpc +from nova import test + + +FLAGS = flags.FLAGS + + +class CertRpcAPITestCase(test.TestCase): + + def setUp(self): + super(CertRpcAPITestCase, self).setUp() + + def tearDown(self): + super(CertRpcAPITestCase, self).tearDown() + + def _test_cert_api(self, method, **kwargs): + ctxt = context.RequestContext('fake_user', 'fake_project') + rpcapi = cert_rpcapi.CertAPI() + expected_retval = 'foo' + expected_msg = rpcapi.make_msg(method, **kwargs) + expected_msg['version'] = rpcapi.RPC_API_VERSION + + self.call_ctxt = None + self.call_topic = None + self.call_msg = None + self.call_timeout = None + + def _fake_call(_ctxt, _topic, _msg, _timeout): + self.call_ctxt = _ctxt + self.call_topic = _topic + self.call_msg = _msg + self.call_timeout = _timeout + return expected_retval + + self.stubs.Set(rpc, 'call', _fake_call) + + retval = getattr(rpcapi, method)(ctxt, **kwargs) + + self.assertEqual(retval, expected_retval) + self.assertEqual(self.call_ctxt, ctxt) + self.assertEqual(self.call_topic, FLAGS.cert_topic) + self.assertEqual(self.call_msg, expected_msg) + self.assertEqual(self.call_timeout, None) + + def test_revoke_certs_by_user(self): + self._test_cert_api('revoke_certs_by_user', user_id='fake_user_id') + + def test_revoke_certs_by_project(self): + self._test_cert_api('revoke_certs_by_project', + project_id='fake_project_id') + + def test_revoke_certs_by_user_and_project(self): + self._test_cert_api('revoke_certs_by_user_and_project', + user_id='fake_user_id', + project_id='fake_project_id') + + def test_generate_x509_cert(self): + self._test_cert_api('generate_x509_cert', + user_id='fake_user_id', + project_id='fake_project_id') + + def test_fetch_ca(self): + self._test_cert_api('fetch_ca', project_id='fake_project_id') + + def test_fetch_crl(self): + self._test_cert_api('fetch_crl', project_id='fake_project_id') + + def test_decrypt_text(self): + self._test_cert_api('decrypt_text', + project_id='fake_project_id', text='blah') -- cgit