# 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 base64 import binascii from django.core.handlers import wsgi from django.core.urlresolvers import reverse from horizon import messages as horizon_messages import mock from castellan.common.objects import symmetric_key from castellan_ui.api import client as api_castellan from castellan_ui.test import helpers as tests from castellan_ui.test import test_data INDEX_URL = reverse('horizon:project:symmetric_keys:index') class SymmetricKeysViewTest(tests.APITestCase): def setUp(self): super(SymmetricKeysViewTest, self).setUp() self.key = test_data.symmetric_key self.key_b64_bytes = base64.b64encode(self.key.get_encoded()) self.mock_object( api_castellan, "get", mock.Mock(return_value=self.key)) self.mock_object(api_castellan, "list", mock.Mock(return_value=[])) self.mock_object(horizon_messages, "success") FAKE_ENVIRON = {'REQUEST_METHOD': 'GET', 'wsgi.input': 'fake_input'} self.request = wsgi.WSGIRequest(FAKE_ENVIRON) def test_index(self): key_list = [test_data.symmetric_key, test_data.nameless_symmetric_key] self.mock_object( api_castellan, "list", mock.Mock(return_value=key_list)) res = self.client.get(INDEX_URL) self.assertEqual(res.status_code, 200) self.assertTemplateUsed(res, 'symmetric_keys.html') api_castellan.list.assert_called_with( mock.ANY, object_type=symmetric_key.SymmetricKey) def test_detail_view(self): url = reverse('horizon:project:symmetric_keys:detail', args=[self.key.id]) self.mock_object( api_castellan, "list", mock.Mock(return_value=[self.key])) self.mock_object( api_castellan, "get", mock.Mock(return_value=self.key)) res = self.client.get(url) self.assertContains( res, "