neutron/neutron/tests/unit/extensions/test_security_groups_normal...

70 lines
2.7 KiB
Python

# 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 neutron_lib.api.definitions import security_groups_normalized_cidr
import webob.exc
from neutron.tests.unit.extensions import test_securitygroup
DB_PLUGIN_KLASS = (
'neutron.tests.unit.extensions.test_security_groups_normalized_cidr.'
'TestPlugin')
class SecurityGroupNormalizedCidrTestExtManager(
test_securitygroup.SecurityGroupTestExtensionManager):
def get_resources(self):
self.update_attributes_map(
security_groups_normalized_cidr.RESOURCE_ATTRIBUTE_MAP)
return super(
SecurityGroupNormalizedCidrTestExtManager, self).get_resources()
class TestPlugin(test_securitygroup.SecurityGroupTestPlugin):
supported_extension_aliases = ['security-group',
security_groups_normalized_cidr.ALIAS]
class TestSecurityGroupsNormalizedCidr(
test_securitygroup.SecurityGroupDBTestCase):
def setUp(self):
super(TestSecurityGroupsNormalizedCidr, self).setUp(
plugin=DB_PLUGIN_KLASS,
ext_mgr=SecurityGroupNormalizedCidrTestExtManager())
def test_create_security_group_rule_with_not_normalized_cidr(self):
name = 'webservers'
description = 'my webservers'
remote_prefixes = ['10.0.0.120/24', '10.0.0.200/24']
with self.security_group(name, description) as sg:
sg_id = sg['security_group']['id']
for remote_ip_prefix in remote_prefixes:
rule = self._build_security_group_rule(
sg_id,
'ingress', 'tcp',
remote_ip_prefix=remote_ip_prefix)
res = self._create_security_group_rule(self.fmt, rule)
self.assertEqual(webob.exc.HTTPCreated.code, res.status_int)
res_sg = self.deserialize(self.fmt, res)
self.assertEqual(
'10.0.0.0/24',
res_sg['security_group_rule']['normalized_cidr']
)
self.assertEqual(
remote_ip_prefix,
res_sg['security_group_rule']['remote_ip_prefix']
)