Coverage for manila/tests/api/views/test_share_accesses.py: 100%
48 statements
« prev ^ index » next coverage.py v7.11.0, created at 2026-02-18 22:19 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2026-02-18 22:19 +0000
1# Copyright (c) 2016 Red Hat, Inc.
2# All Rights Reserved.
3#
4# Licensed under the Apache License, Version 2.0 (the "License"); you may
5# not use this file except in compliance with the License. You may obtain
6# a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13# License for the specific language governing permissions and limitations
14# under the License.
16from unittest import mock
18import ddt
20from manila.api.openstack import api_version_request as api_version
21from manila.api.views import share_accesses
22from manila.share import api
23from manila import test
24from manila.tests.api import fakes
27@ddt.ddt
28class ViewBuilderTestCase(test.TestCase):
30 def setUp(self):
31 super(ViewBuilderTestCase, self).setUp()
32 self.builder = share_accesses.ViewBuilder()
33 self.fake_access = {
34 'id': 'fakeaccessid',
35 'share_id': 'fakeshareid',
36 'access_level': 'fakeaccesslevel',
37 'access_to': 'fakeacccessto',
38 'access_type': 'fakeaccesstype',
39 'state': 'fakeaccessstate',
40 'access_key': 'fakeaccesskey',
41 'created_at': 'fakecreated_at',
42 'updated_at': 'fakeupdated_at',
43 'metadata': {},
44 }
45 self.fake_share = {
46 'access_rules_status': self.fake_access['state'],
47 }
49 def test_collection_name(self):
50 self.assertEqual('share_accesses', self.builder._collection_name)
52 @ddt.data("2.20", "2.21", "2.33", "2.45")
53 def test_view(self, version):
54 req = fakes.HTTPRequest.blank('/shares', version=version)
55 self.mock_object(api.API, 'get',
56 mock.Mock(return_value=self.fake_share))
58 result = self.builder.view(req, self.fake_access)
59 self._delete_unsupport_key(version, True)
61 self.assertEqual({'access': self.fake_access}, result)
63 @ddt.data("2.20", "2.21", "2.33", "2.45")
64 def test_summary_view(self, version):
65 req = fakes.HTTPRequest.blank('/shares', version=version)
66 self.mock_object(api.API, 'get',
67 mock.Mock(return_value=self.fake_share))
69 result = self.builder.summary_view(req, self.fake_access)
70 self._delete_unsupport_key(version)
72 self.assertEqual({'access': self.fake_access}, result)
74 @ddt.data("2.20", "2.21", "2.33", "2.45")
75 def test_list_view(self, version):
76 req = fakes.HTTPRequest.blank('/shares', version=version)
77 self.mock_object(api.API, 'get',
78 mock.Mock(return_value=self.fake_share))
79 accesses = [self.fake_access, ]
81 result = self.builder.list_view(req, accesses)
82 self._delete_unsupport_key(version)
84 self.assertEqual({'access_list': accesses}, result)
86 def _delete_unsupport_key(self, version, support_share_id=False):
87 if (api_version.APIVersionRequest(version) <
88 api_version.APIVersionRequest("2.21")):
89 del self.fake_access['access_key']
91 if (api_version.APIVersionRequest(version) <
92 api_version.APIVersionRequest("2.33")):
93 del self.fake_access['created_at']
94 del self.fake_access['updated_at']
95 if (api_version.APIVersionRequest(version) <
96 api_version.APIVersionRequest("2.45")):
97 del self.fake_access['metadata']
98 if not support_share_id:
99 del self.fake_access['share_id']