Adding description for testcases - network part2
When Tempest is used in customer site, often we are required to provide a testcase list including testcase names and descriptions. Now no this kind of doc is available, so we can add descriptions with the format of doc string for every testcase, so later we can generata such a testcase description list. There are hundreds of testcases missing descriptions, so we can add them gradually, and limit the modified files in one patch for the convenience of reviewing. Change-Id: I38e445ae3a2b4b3c1bd909becf17504b42636c82 partially-implements: blueprint testcase-description
This commit is contained in:
parent
f004447315
commit
05fc4f72b6
|
@ -18,6 +18,7 @@ from tempest.lib import decorators
|
|||
|
||||
|
||||
class DHCPAgentSchedulersTestJSON(base.BaseAdminNetworkTest):
|
||||
"""Test network DHCP agent scheduler extension"""
|
||||
|
||||
@classmethod
|
||||
def skip_checks(cls):
|
||||
|
@ -37,11 +38,13 @@ class DHCPAgentSchedulersTestJSON(base.BaseAdminNetworkTest):
|
|||
|
||||
@decorators.idempotent_id('5032b1fe-eb42-4a64-8f3b-6e189d8b5c7d')
|
||||
def test_list_dhcp_agent_hosting_network(self):
|
||||
"""Test Listing DHCP agents hosting a network"""
|
||||
self.admin_networks_client.list_dhcp_agents_on_hosting_network(
|
||||
self.network['id'])
|
||||
|
||||
@decorators.idempotent_id('30c48f98-e45d-4ffb-841c-b8aad57c7587')
|
||||
def test_list_networks_hosted_by_one_dhcp(self):
|
||||
"""Test Listing networks hosted by a DHCP agent"""
|
||||
body = self.admin_networks_client.list_dhcp_agents_on_hosting_network(
|
||||
self.network['id'])
|
||||
agents = body['agents']
|
||||
|
@ -61,6 +64,7 @@ class DHCPAgentSchedulersTestJSON(base.BaseAdminNetworkTest):
|
|||
|
||||
@decorators.idempotent_id('a0856713-6549-470c-a656-e97c8df9a14d')
|
||||
def test_add_remove_network_from_dhcp_agent(self):
|
||||
"""Test adding and removing network from a DHCP agent"""
|
||||
# The agent is now bound to the network, we can free the port
|
||||
self.ports_client.delete_port(self.port['id'])
|
||||
agent = dict()
|
||||
|
|
|
@ -23,6 +23,7 @@ CONF = config.CONF
|
|||
|
||||
|
||||
class ExternalNetworksTestJSON(base.BaseAdminNetworkTest):
|
||||
"""Test external networks"""
|
||||
|
||||
@classmethod
|
||||
def resource_setup(cls):
|
||||
|
@ -42,8 +43,11 @@ class ExternalNetworksTestJSON(base.BaseAdminNetworkTest):
|
|||
|
||||
@decorators.idempotent_id('462be770-b310-4df9-9c42-773217e4c8b1')
|
||||
def test_create_external_network(self):
|
||||
# Create a network as an admin user specifying the
|
||||
# external network extension attribute
|
||||
"""Test creating external network
|
||||
|
||||
Create a network as an admin user specifying the
|
||||
external network extension attribute
|
||||
"""
|
||||
ext_network = self._create_network()
|
||||
# Verifies router:external parameter
|
||||
self.assertIsNotNone(ext_network['id'])
|
||||
|
@ -51,8 +55,11 @@ class ExternalNetworksTestJSON(base.BaseAdminNetworkTest):
|
|||
|
||||
@decorators.idempotent_id('4db5417a-e11c-474d-a361-af00ebef57c5')
|
||||
def test_update_external_network(self):
|
||||
# Update a network as an admin user specifying the
|
||||
# external network extension attribute
|
||||
"""Test updating external network
|
||||
|
||||
Update a network as an admin user specifying the
|
||||
external network extension attribute
|
||||
"""
|
||||
network = self._create_network(external=False)
|
||||
self.assertFalse(network.get('router:external', False))
|
||||
update_body = {'router:external': True}
|
||||
|
@ -64,6 +71,7 @@ class ExternalNetworksTestJSON(base.BaseAdminNetworkTest):
|
|||
|
||||
@decorators.idempotent_id('39be4c9b-a57e-4ff9-b7c7-b218e209dfcc')
|
||||
def test_list_external_networks(self):
|
||||
"""Test listing external networks"""
|
||||
# Create external_net
|
||||
external_network = self._create_network()
|
||||
# List networks as a normal user and confirm the external
|
||||
|
@ -81,6 +89,7 @@ class ExternalNetworksTestJSON(base.BaseAdminNetworkTest):
|
|||
|
||||
@decorators.idempotent_id('2ac50ab2-7ebd-4e27-b3ce-a9e399faaea2')
|
||||
def test_show_external_networks_attribute(self):
|
||||
"""Test showing external network attribute"""
|
||||
# Create external_net
|
||||
external_network = self._create_network()
|
||||
# Show an external network as a normal user and confirm the
|
||||
|
@ -101,9 +110,11 @@ class ExternalNetworksTestJSON(base.BaseAdminNetworkTest):
|
|||
@testtools.skipUnless(CONF.network_feature_enabled.floating_ips,
|
||||
'Floating ips are not availabled')
|
||||
def test_delete_external_networks_with_floating_ip(self):
|
||||
# Verifies external network can be deleted while still holding
|
||||
# (unassociated) floating IPs
|
||||
"""Test deleting external network with unassociated floating ips
|
||||
|
||||
Verifies external network can be deleted while still holding
|
||||
(unassociated) floating IPs
|
||||
"""
|
||||
body = self.admin_networks_client.create_network(
|
||||
**{'router:external': True})
|
||||
external_network = body['network']
|
||||
|
|
|
@ -25,16 +25,19 @@ CONF = config.CONF
|
|||
|
||||
|
||||
class ExternalNetworksAdminNegativeTestJSON(base.BaseAdminNetworkTest):
|
||||
"""Negative tests of external network"""
|
||||
|
||||
@decorators.attr(type=['negative'])
|
||||
@decorators.idempotent_id('d402ae6c-0be0-4d8e-833b-a738895d98d0')
|
||||
@testtools.skipUnless(CONF.network.public_network_id,
|
||||
'The public_network_id option must be specified.')
|
||||
def test_create_port_with_precreated_floatingip_as_fixed_ip(self):
|
||||
# NOTE: External networks can be used to create both floating-ip as
|
||||
# well as instance-ip. So, creating an instance-ip with a value of a
|
||||
# pre-created floating-ip should be denied.
|
||||
"""Test creating port with precreated floating ip as fixed ip
|
||||
|
||||
NOTE: External networks can be used to create both floating-ip as
|
||||
well as instance-ip. So, creating an instance-ip with a value of a
|
||||
pre-created floating-ip should be denied.
|
||||
"""
|
||||
# create a floating ip
|
||||
body = self.admin_floating_ips_client.create_floatingip(
|
||||
floating_network_id=CONF.network.public_network_id)
|
||||
|
|
|
@ -92,13 +92,14 @@ class MeteringTestJSON(base.BaseAdminNetworkTest):
|
|||
|
||||
@decorators.idempotent_id('e2fb2f8c-45bf-429a-9f17-171c70444612')
|
||||
def test_list_metering_labels(self):
|
||||
# Verify label filtering
|
||||
"""Verify listing metering labels"""
|
||||
body = self.admin_metering_labels_client.list_metering_labels(id=33)
|
||||
metering_labels = body['metering_labels']
|
||||
self.assertEmpty(metering_labels)
|
||||
|
||||
@decorators.idempotent_id('ec8e15ff-95d0-433b-b8a6-b466bddb1e50')
|
||||
def test_create_delete_metering_label_with_filters(self):
|
||||
"""Verifies creating and deleting metering label with filters"""
|
||||
# Creates a label
|
||||
name = data_utils.rand_name('metering-label-')
|
||||
description = "label created by tempest"
|
||||
|
@ -115,7 +116,7 @@ class MeteringTestJSON(base.BaseAdminNetworkTest):
|
|||
|
||||
@decorators.idempotent_id('30abb445-0eea-472e-bd02-8649f54a5968')
|
||||
def test_show_metering_label(self):
|
||||
# Verifies the details of a label
|
||||
"""Verifies the details of a metering label"""
|
||||
body = self.admin_metering_labels_client.show_metering_label(
|
||||
self.metering_label['id'])
|
||||
metering_label = body['metering_label']
|
||||
|
@ -128,6 +129,7 @@ class MeteringTestJSON(base.BaseAdminNetworkTest):
|
|||
|
||||
@decorators.idempotent_id('cc832399-6681-493b-9d79-0202831a1281')
|
||||
def test_list_metering_label_rules(self):
|
||||
"""Verifies listing metering label rules"""
|
||||
client = self.admin_metering_label_rules_client
|
||||
# Verify rule filtering
|
||||
body = client.list_metering_label_rules(id=33)
|
||||
|
@ -136,6 +138,7 @@ class MeteringTestJSON(base.BaseAdminNetworkTest):
|
|||
|
||||
@decorators.idempotent_id('f4d547cd-3aee-408f-bf36-454f8825e045')
|
||||
def test_create_delete_metering_label_rule_with_filters(self):
|
||||
"""Verifies creating and deleting metering label rule with filters"""
|
||||
# Creates a rule
|
||||
remote_ip_prefix = ("10.0.1.0/24" if self._ip_version == 4
|
||||
else "fd03::/64")
|
||||
|
@ -154,7 +157,7 @@ class MeteringTestJSON(base.BaseAdminNetworkTest):
|
|||
|
||||
@decorators.idempotent_id('b7354489-96ea-41f3-9452-bace120fb4a7')
|
||||
def test_show_metering_label_rule(self):
|
||||
# Verifies the details of a rule
|
||||
"""Verifies the metering details of a rule"""
|
||||
client = self.admin_metering_label_rules_client
|
||||
body = (client.show_metering_label_rule(
|
||||
self.metering_label_rule['id']))
|
||||
|
|
|
@ -27,6 +27,8 @@ CONF = config.CONF
|
|||
|
||||
|
||||
class RoutersAdminTest(base.BaseAdminNetworkTest):
|
||||
"""Test routers operation supported by admin"""
|
||||
|
||||
# NOTE(salv-orlando): This class inherits from BaseAdminNetworkTest
|
||||
# as some router operations, such as enabling or disabling SNAT
|
||||
# require admin credentials by default
|
||||
|
@ -52,7 +54,7 @@ class RoutersAdminTest(base.BaseAdminNetworkTest):
|
|||
|
||||
@decorators.idempotent_id('e54dd3a3-4352-4921-b09d-44369ae17397')
|
||||
def test_create_router_setting_project_id(self):
|
||||
# Test creating router from admin user setting project_id.
|
||||
"""Test creating router from admin user setting project_id."""
|
||||
project = data_utils.rand_name('test_tenant_')
|
||||
description = data_utils.rand_name('desc_')
|
||||
project = identity.identity_utils(self.os_admin).create_project(
|
||||
|
@ -74,7 +76,7 @@ class RoutersAdminTest(base.BaseAdminNetworkTest):
|
|||
@testtools.skipUnless(CONF.network.public_network_id,
|
||||
'The public_network_id option must be specified.')
|
||||
def test_create_router_with_default_snat_value(self):
|
||||
# Create a router with default snat rule
|
||||
"""Create a router with default snat rule"""
|
||||
router = self._create_router(
|
||||
external_network_id=CONF.network.public_network_id)
|
||||
self._verify_router_gateway(
|
||||
|
@ -86,6 +88,7 @@ class RoutersAdminTest(base.BaseAdminNetworkTest):
|
|||
@testtools.skipUnless(CONF.network.public_network_id,
|
||||
'The public_network_id option must be specified.')
|
||||
def test_create_router_with_snat_explicit(self):
|
||||
"""Test creating router with specified enable_snat value"""
|
||||
name = data_utils.rand_name('snat-router')
|
||||
# Create a router enabling snat attributes
|
||||
enable_snat_states = [False, True]
|
||||
|
@ -134,6 +137,7 @@ class RoutersAdminTest(base.BaseAdminNetworkTest):
|
|||
@testtools.skipUnless(CONF.network.public_network_id,
|
||||
'The public_network_id option must be specified.')
|
||||
def test_update_router_set_gateway(self):
|
||||
"""Test updating router's gateway info"""
|
||||
router = self._create_router()
|
||||
self.routers_client.update_router(
|
||||
router['id'],
|
||||
|
@ -150,6 +154,7 @@ class RoutersAdminTest(base.BaseAdminNetworkTest):
|
|||
@testtools.skipUnless(CONF.network.public_network_id,
|
||||
'The public_network_id option must be specified.')
|
||||
def test_update_router_set_gateway_with_snat_explicit(self):
|
||||
"""Test setting router's gateway with snat enabled"""
|
||||
router = self._create_router()
|
||||
self.admin_routers_client.update_router(
|
||||
router['id'],
|
||||
|
@ -167,6 +172,7 @@ class RoutersAdminTest(base.BaseAdminNetworkTest):
|
|||
@testtools.skipUnless(CONF.network.public_network_id,
|
||||
'The public_network_id option must be specified.')
|
||||
def test_update_router_set_gateway_without_snat(self):
|
||||
"""Test setting router's gateway with snat not enabled"""
|
||||
router = self._create_router()
|
||||
self.admin_routers_client.update_router(
|
||||
router['id'],
|
||||
|
@ -183,6 +189,7 @@ class RoutersAdminTest(base.BaseAdminNetworkTest):
|
|||
@testtools.skipUnless(CONF.network.public_network_id,
|
||||
'The public_network_id option must be specified.')
|
||||
def test_update_router_unset_gateway(self):
|
||||
"""Test unsetting router's gateway"""
|
||||
router = self._create_router(
|
||||
external_network_id=CONF.network.public_network_id)
|
||||
self.routers_client.update_router(router['id'],
|
||||
|
@ -199,6 +206,7 @@ class RoutersAdminTest(base.BaseAdminNetworkTest):
|
|||
@testtools.skipUnless(CONF.network.public_network_id,
|
||||
'The public_network_id option must be specified.')
|
||||
def test_update_router_reset_gateway_without_snat(self):
|
||||
"""Test updating router's gateway to be with snat not enabled"""
|
||||
router = self._create_router(
|
||||
external_network_id=CONF.network.public_network_id)
|
||||
self.admin_routers_client.update_router(
|
||||
|
@ -215,6 +223,7 @@ class RoutersAdminTest(base.BaseAdminNetworkTest):
|
|||
@decorators.idempotent_id('cbe42f84-04c2-11e7-8adb-fa163e4fa634')
|
||||
@utils.requires_ext(extension='ext-gw-mode', service='network')
|
||||
def test_create_router_set_gateway_with_fixed_ip(self):
|
||||
"""Test creating router setting gateway with fixed ip"""
|
||||
# At first create an external network and then use that
|
||||
# to create address and delete
|
||||
network_name = data_utils.rand_name(self.__class__.__name__)
|
||||
|
|
|
@ -27,6 +27,7 @@ CONF = config.CONF
|
|||
|
||||
|
||||
class RoutersTest(base.BaseNetworkTest):
|
||||
"""Test routers"""
|
||||
|
||||
def _add_router_interface_with_subnet_id(self, router_id, subnet_id):
|
||||
interface = self.routers_client.add_router_interface(
|
||||
|
@ -53,6 +54,7 @@ class RoutersTest(base.BaseNetworkTest):
|
|||
@testtools.skipUnless(CONF.network.public_network_id,
|
||||
'The public_network_id option must be specified.')
|
||||
def test_create_show_list_update_delete_router(self):
|
||||
"""Test create/show/list/update/delete of a router"""
|
||||
# Create a router
|
||||
router_name = data_utils.rand_name(self.__class__.__name__ + '-router')
|
||||
router = self.create_router(
|
||||
|
@ -87,6 +89,7 @@ class RoutersTest(base.BaseNetworkTest):
|
|||
@decorators.attr(type='smoke')
|
||||
@decorators.idempotent_id('b42e6e39-2e37-49cc-a6f4-8467e940900a')
|
||||
def test_add_remove_router_interface_with_subnet_id(self):
|
||||
"""Test adding and removing router interface with subnet id"""
|
||||
network_name = data_utils.rand_name(self.__class__.__name__)
|
||||
network = self.networks_client.create_network(
|
||||
name=network_name)['network']
|
||||
|
@ -113,6 +116,7 @@ class RoutersTest(base.BaseNetworkTest):
|
|||
@decorators.attr(type='smoke')
|
||||
@decorators.idempotent_id('2b7d2f37-6748-4d78-92e5-1d590234f0d5')
|
||||
def test_add_remove_router_interface_with_port_id(self):
|
||||
"""Test adding and removing router interface with port id"""
|
||||
network_name = data_utils.rand_name(self.__class__.__name__)
|
||||
network = self.networks_client.create_network(
|
||||
name=network_name)['network']
|
||||
|
@ -145,6 +149,7 @@ class RoutersTest(base.BaseNetworkTest):
|
|||
@decorators.idempotent_id('c86ac3a8-50bd-4b00-a6b8-62af84a0765c')
|
||||
@utils.requires_ext(extension='extraroute', service='network')
|
||||
def test_update_delete_extra_route(self):
|
||||
"""Test updating and deleting router with extra route"""
|
||||
# Create different cidr for each subnet to avoid cidr duplicate
|
||||
# The cidr starts from project_cidr
|
||||
next_cidr = self.cidr
|
||||
|
@ -215,6 +220,7 @@ class RoutersTest(base.BaseNetworkTest):
|
|||
|
||||
@decorators.idempotent_id('a8902683-c788-4246-95c7-ad9c6d63a4d9')
|
||||
def test_update_router_admin_state(self):
|
||||
"""Test updating router's admin state"""
|
||||
router = self.create_router()
|
||||
self.addCleanup(self.delete_router, router)
|
||||
self.assertFalse(router['admin_state_up'])
|
||||
|
@ -228,6 +234,7 @@ class RoutersTest(base.BaseNetworkTest):
|
|||
@decorators.attr(type='smoke')
|
||||
@decorators.idempotent_id('802c73c9-c937-4cef-824b-2191e24a6aab')
|
||||
def test_add_multiple_router_interfaces(self):
|
||||
"""Test adding multiple router interfaces"""
|
||||
network_name = data_utils.rand_name(self.__class__.__name__)
|
||||
network01 = self.networks_client.create_network(
|
||||
name=network_name)['network']
|
||||
|
@ -258,6 +265,7 @@ class RoutersTest(base.BaseNetworkTest):
|
|||
|
||||
@decorators.idempotent_id('96522edf-b4b5-45d9-8443-fa11c26e6eff')
|
||||
def test_router_interface_port_update_with_fixed_ip(self):
|
||||
"""Test updating router interface port's fixed ip"""
|
||||
network_name = data_utils.rand_name(self.__class__.__name__)
|
||||
network = self.networks_client.create_network(
|
||||
name=network_name)['network']
|
||||
|
|
|
@ -21,6 +21,7 @@ from tempest.lib import exceptions as lib_exc
|
|||
|
||||
|
||||
class RoutersNegativeTest(base.BaseNetworkTest):
|
||||
"""Negative tests of routers"""
|
||||
|
||||
@classmethod
|
||||
def skip_checks(cls):
|
||||
|
@ -39,6 +40,7 @@ class RoutersNegativeTest(base.BaseNetworkTest):
|
|||
@decorators.attr(type=['negative'])
|
||||
@decorators.idempotent_id('37a94fc0-a834-45b9-bd23-9a81d2fd1e22')
|
||||
def test_router_add_gateway_invalid_network_returns_404(self):
|
||||
"""Test adding gateway with invalid network for router"""
|
||||
self.assertRaises(lib_exc.NotFound,
|
||||
self.routers_client.update_router,
|
||||
self.router['id'],
|
||||
|
@ -48,6 +50,7 @@ class RoutersNegativeTest(base.BaseNetworkTest):
|
|||
@decorators.attr(type=['negative'])
|
||||
@decorators.idempotent_id('11836a18-0b15-4327-a50b-f0d9dc66bddd')
|
||||
def test_router_add_gateway_net_not_external_returns_400(self):
|
||||
"""Test adding gateway with not external network for router"""
|
||||
alt_network = self.create_network()
|
||||
sub_cidr = self.cidr.next()
|
||||
self.create_subnet(alt_network, cidr=sub_cidr)
|
||||
|
@ -60,6 +63,7 @@ class RoutersNegativeTest(base.BaseNetworkTest):
|
|||
@decorators.attr(type=['negative'])
|
||||
@decorators.idempotent_id('957751a3-3c68-4fa2-93b6-eb52ea10db6e')
|
||||
def test_add_router_interfaces_on_overlapping_subnets_returns_400(self):
|
||||
"""Test adding router interface which is on overlapping subnets"""
|
||||
network01 = self.create_network(
|
||||
network_name=data_utils.rand_name('router-network01-'))
|
||||
network02 = self.create_network(
|
||||
|
@ -79,6 +83,7 @@ class RoutersNegativeTest(base.BaseNetworkTest):
|
|||
@decorators.attr(type=['negative'])
|
||||
@decorators.idempotent_id('04df80f9-224d-47f5-837a-bf23e33d1c20')
|
||||
def test_router_remove_interface_in_use_returns_409(self):
|
||||
"""Test removing in-use interface from router"""
|
||||
self.routers_client.add_router_interface(self.router['id'],
|
||||
subnet_id=self.subnet['id'])
|
||||
self.addCleanup(self.routers_client.remove_router_interface,
|
||||
|
@ -90,6 +95,7 @@ class RoutersNegativeTest(base.BaseNetworkTest):
|
|||
@decorators.attr(type=['negative'])
|
||||
@decorators.idempotent_id('c2a70d72-8826-43a7-8208-0209e6360c47')
|
||||
def test_show_non_existent_router_returns_404(self):
|
||||
"""Test showing non existent router"""
|
||||
router = data_utils.rand_name('non_exist_router')
|
||||
self.assertRaises(lib_exc.NotFound, self.routers_client.show_router,
|
||||
router)
|
||||
|
@ -97,6 +103,7 @@ class RoutersNegativeTest(base.BaseNetworkTest):
|
|||
@decorators.attr(type=['negative'])
|
||||
@decorators.idempotent_id('b23d1569-8b0c-4169-8d4b-6abd34fad5c7')
|
||||
def test_update_non_existent_router_returns_404(self):
|
||||
"""Test updating non existent router"""
|
||||
router = data_utils.rand_name('non_exist_router')
|
||||
self.assertRaises(lib_exc.NotFound, self.routers_client.update_router,
|
||||
router, name="new_name")
|
||||
|
@ -104,6 +111,7 @@ class RoutersNegativeTest(base.BaseNetworkTest):
|
|||
@decorators.attr(type=['negative'])
|
||||
@decorators.idempotent_id('c7edc5ad-d09d-41e6-a344-5c0c31e2e3e4')
|
||||
def test_delete_non_existent_router_returns_404(self):
|
||||
"""Test deleting non existent router"""
|
||||
router = data_utils.rand_name('non_exist_router')
|
||||
self.assertRaises(lib_exc.NotFound, self.routers_client.delete_router,
|
||||
router)
|
||||
|
@ -114,6 +122,7 @@ class RoutersNegativeIpV6Test(RoutersNegativeTest):
|
|||
|
||||
|
||||
class DvrRoutersNegativeTest(base.BaseNetworkTest):
|
||||
"""Negative tests of DVR router"""
|
||||
|
||||
@classmethod
|
||||
def skip_checks(cls):
|
||||
|
@ -125,5 +134,6 @@ class DvrRoutersNegativeTest(base.BaseNetworkTest):
|
|||
@decorators.attr(type=['negative'])
|
||||
@decorators.idempotent_id('4990b055-8fc7-48ab-bba7-aa28beaad0b9')
|
||||
def test_router_create_tenant_distributed_returns_forbidden(self):
|
||||
"""Non admin user is not allowed to create distributed router"""
|
||||
self.assertRaises(lib_exc.Forbidden, self.create_router,
|
||||
distributed=True)
|
||||
|
|
|
@ -18,12 +18,14 @@ from tempest.lib import decorators
|
|||
|
||||
|
||||
class ServiceProvidersTest(base.BaseNetworkTest):
|
||||
"""Test network service providers"""
|
||||
|
||||
@decorators.idempotent_id('2cbbeea9-f010-40f6-8df5-4eaa0c918ea6')
|
||||
@testtools.skipUnless(
|
||||
utils.is_extension_enabled('service-type', 'network'),
|
||||
'service-type extension not enabled.')
|
||||
def test_service_providers_list(self):
|
||||
"""Test listing network service providers"""
|
||||
body = self.service_providers_client.list_service_providers()
|
||||
self.assertIn('service_providers', body)
|
||||
self.assertIsInstance(body['service_providers'], list)
|
||||
|
|
|
@ -49,6 +49,7 @@ class SubnetPoolsTestJSON(base.BaseNetworkTest):
|
|||
@decorators.attr(type='smoke')
|
||||
@decorators.idempotent_id('62595970-ab1c-4b7f-8fcc-fddfe55e9811')
|
||||
def test_create_list_show_update_delete_subnetpools(self):
|
||||
"""Test create/list/show/update/delete of subnet pools"""
|
||||
subnetpool_name = data_utils.rand_name('subnetpools')
|
||||
# create subnet pool
|
||||
prefix = CONF.network.default_network
|
||||
|
|
Loading…
Reference in New Issue