Coverage for manila/tests/api/views/test_share_network_subnets.py: 100%
43 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 2019 NetApp, 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.
17import ddt
19from manila.api.openstack import api_version_request as api_version
20from manila.api.views import share_network_subnets
21from manila import test
22from manila.tests.api import fakes
23from manila.tests import db_utils
26@ddt.ddt
27class ViewBuilderTestCase(test.TestCase):
29 def setUp(self):
30 super(ViewBuilderTestCase, self).setUp()
31 self.builder = share_network_subnets.ViewBuilder()
32 self.share_network = db_utils.create_share_network(
33 name='fake_network', id='fake_sn_id')
35 def _validate_is_detail_return(self, result, metadata_support=False):
36 expected_keys = ['id', 'created_at', 'updated_at', 'neutron_net_id',
37 'neutron_subnet_id', 'network_type', 'cidr',
38 'segmentation_id', 'ip_version', 'share_network_id',
39 'availability_zone', 'gateway', 'mtu']
40 if metadata_support:
41 expected_keys.append('metadata')
43 for key in expected_keys:
44 self.assertIn(key, result)
46 def test_build_share_network_subnet(self):
47 req = fakes.HTTPRequest.blank('/subnets', version='2.51')
49 subnet = db_utils.create_share_network_subnet(
50 share_network_id=self.share_network['id'])
52 result = self.builder.build_share_network_subnet(req, subnet)
54 self.assertEqual(1, len(result))
55 self.assertIn('share_network_subnet', result)
56 self.assertEqual(subnet['id'],
57 result['share_network_subnet']['id'])
58 self.assertEqual(subnet['share_network_id'],
59 result['share_network_subnet']['share_network_id'])
60 self.assertIsNone(
61 result['share_network_subnet']['availability_zone'])
62 self._validate_is_detail_return(result['share_network_subnet'])
64 @ddt.data("2.51", "2.78")
65 def test_build_share_network_subnets(self, microversion):
66 metadata_support = (api_version.APIVersionRequest(microversion) >=
67 api_version.APIVersionRequest('2.78'))
69 req = fakes.HTTPRequest.blank('/subnets', version=microversion)
71 share_network = db_utils.create_share_network(
72 name='fake_network', id='fake_sn_id_1')
74 expected_metadata = {'fake_key': 'fake_value'}
75 subnet = db_utils.create_share_network_subnet(
76 share_network_id=share_network['id'], metadata=expected_metadata)
78 result = self.builder.build_share_network_subnets(req, [subnet])
80 self.assertIn('share_network_subnets', result)
81 self.assertEqual(1, len(result['share_network_subnets']))
82 subnet_list = result['share_network_subnets']
83 for subnet in subnet_list:
84 self._validate_is_detail_return(subnet,
85 metadata_support=metadata_support)
86 if metadata_support:
87 self.assertEqual(expected_metadata, subnet['metadata'])