Merge "Fix H404/405 violations for api tests(2/3)"
diff --git a/tempest/api/network/admin/test_agent_management.py b/tempest/api/network/admin/test_agent_management.py
index 128398b..c5d0d57 100644
--- a/tempest/api/network/admin/test_agent_management.py
+++ b/tempest/api/network/admin/test_agent_management.py
@@ -79,9 +79,8 @@
         self.assertEqual(updated_description, description)
 
     def _restore_agent(self):
-        """
-        Restore the agent description after update test.
-        """
+        """Restore the agent description after update test"""
+
         description = self.agent['description'] or ''
         origin_agent = {'description': description}
         self.admin_client.update_agent(agent_id=self.agent['id'],
diff --git a/tempest/api/network/admin/test_external_network_extension.py b/tempest/api/network/admin/test_external_network_extension.py
index ac53587..fce63ac 100644
--- a/tempest/api/network/admin/test_external_network_extension.py
+++ b/tempest/api/network/admin/test_external_network_extension.py
@@ -91,10 +91,9 @@
 
     @test.idempotent_id('82068503-2cf2-4ed4-b3be-ecb89432e4bb')
     def test_delete_external_networks_with_floating_ip(self):
-        """Verifies external network can be deleted while still holding
-        (unassociated) floating IPs
+        # Verifies external network can be deleted while still holding
+        # (unassociated) floating IPs
 
-        """
         # Set cls.client to admin to use base.create_subnet()
         client = self.admin_client
         body = self.admin_networks_client.create_network(
diff --git a/tempest/api/network/admin/test_external_networks_negative.py b/tempest/api/network/admin/test_external_networks_negative.py
index 8dfce24..1e1573e 100644
--- a/tempest/api/network/admin/test_external_networks_negative.py
+++ b/tempest/api/network/admin/test_external_networks_negative.py
@@ -27,11 +27,9 @@
     @test.attr(type=['negative'])
     @test.idempotent_id('d402ae6c-0be0-4d8e-833b-a738895d98d0')
     def test_create_port_with_precreated_floatingip_as_fixed_ip(self):
-        """
-        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.
-        """
+        # 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
         client = self.admin_client
diff --git a/tempest/api/network/admin/test_quotas.py b/tempest/api/network/admin/test_quotas.py
index f5c5784..4a25206 100644
--- a/tempest/api/network/admin/test_quotas.py
+++ b/tempest/api/network/admin/test_quotas.py
@@ -21,9 +21,7 @@
 
 
 class QuotasTest(base.BaseAdminNetworkTest):
-    """
-    Tests the following operations in the Neutron API using the REST client for
-    Neutron:
+    """Tests the following operations in the Neutron API:
 
         list quotas for tenants who have non-default quota values
         show quotas for a specified tenant
diff --git a/tempest/api/network/admin/test_routers_dvr.py b/tempest/api/network/admin/test_routers_dvr.py
index 365698d..3e787af 100644
--- a/tempest/api/network/admin/test_routers_dvr.py
+++ b/tempest/api/network/admin/test_routers_dvr.py
@@ -42,7 +42,8 @@
 
     @test.idempotent_id('08a2a0a8-f1e4-4b34-8e30-e522e836c44e')
     def test_distributed_router_creation(self):
-        """
+        """Test distributed router creation
+
         Test uses administrative credentials to creates a
         DVR (Distributed Virtual Routing) router using the
         distributed=True.
@@ -59,7 +60,8 @@
 
     @test.idempotent_id('8a0a72b4-7290-4677-afeb-b4ffe37bc352')
     def test_centralized_router_creation(self):
-        """
+        """Test centralized router creation
+
         Test uses administrative credentials to creates a
         CVR (Centralized Virtual Routing) router using the
         distributed=False.
@@ -77,10 +79,11 @@
 
     @test.idempotent_id('acd43596-c1fb-439d-ada8-31ad48ae3c2e')
     def test_centralized_router_update_to_dvr(self):
-        """
+        """Test centralized router update
+
         Test uses administrative credentials to creates a
         CVR (Centralized Virtual Routing) router using the
-        distributed=False.Then it will "update" the router
+        distributed=False. Then it will "update" the router
         distributed attribute to True
 
         Acceptance
diff --git a/tempest/api/network/base.py b/tempest/api/network/base.py
index 5198ae8..2c0b981 100644
--- a/tempest/api/network/base.py
+++ b/tempest/api/network/base.py
@@ -28,9 +28,7 @@
 
 
 class BaseNetworkTest(tempest.test.BaseTestCase):
-
-    """
-    Base class for the Neutron tests that use the Tempest Neutron REST client
+    """Base class for the Neutron tests
 
     Per the Neutron API Guide, API v1.x was removed from the source code tree
     (docs.openstack.org/api/openstack-network/2.0/content/Overview-d1e71.html)
diff --git a/tempest/api/network/test_allowed_address_pair.py b/tempest/api/network/test_allowed_address_pair.py
index 41714aa..394aec1 100644
--- a/tempest/api/network/test_allowed_address_pair.py
+++ b/tempest/api/network/test_allowed_address_pair.py
@@ -23,9 +23,9 @@
 
 
 class AllowedAddressPairTestJSON(base.BaseNetworkTest):
-    """
-    Tests the Neutron Allowed Address Pair API extension using the Tempest
-    ReST client. The following API operations are tested with this extension:
+    """Tests the Neutron Allowed Address Pair API extension
+
+    The following API operations are tested with this extension:
 
         create port
         list ports
diff --git a/tempest/api/network/test_dhcp_ipv6.py b/tempest/api/network/test_dhcp_ipv6.py
index 27713a2..ceb7906 100644
--- a/tempest/api/network/test_dhcp_ipv6.py
+++ b/tempest/api/network/test_dhcp_ipv6.py
@@ -99,10 +99,9 @@
 
     @test.idempotent_id('e5517e62-6f16-430d-a672-f80875493d4c')
     def test_dhcpv6_stateless_eui64(self):
-        """When subnets configured with RAs SLAAC (AOM=100) and DHCP stateless
-        (AOM=110) both for radvd and dnsmasq, port shall receive IP address
-        calculated from its MAC.
-        """
+        # NOTE: When subnets configured with RAs SLAAC (AOM=100) and DHCP
+        # stateless (AOM=110) both for radvd and dnsmasq, port shall receive
+        # IP address calculated from its MAC.
         for ra_mode, add_mode in (
                 ('slaac', 'slaac'),
                 ('dhcpv6-stateless', 'dhcpv6-stateless'),
@@ -118,10 +117,9 @@
 
     @test.idempotent_id('ae2f4a5d-03ff-4c42-a3b0-ce2fcb7ea832')
     def test_dhcpv6_stateless_no_ra(self):
-        """When subnets configured with dnsmasq SLAAC and DHCP stateless
-        and there is no radvd, port shall receive IP address calculated
-        from its MAC and mask of subnet.
-        """
+        # NOTE: When subnets configured with dnsmasq SLAAC and DHCP stateless
+        # and there is no radvd, port shall receive IP address calculated
+        # from its MAC and mask of subnet.
         for ra_mode, add_mode in (
                 (None, 'slaac'),
                 (None, 'dhcpv6-stateless'),
@@ -158,9 +156,8 @@
 
     @test.idempotent_id('21635b6f-165a-4d42-bf49-7d195e47342f')
     def test_dhcpv6_stateless_no_ra_no_dhcp(self):
-        """If no radvd option and no dnsmasq option is configured
-        port shall receive IP from fixed IPs list of subnet.
-        """
+        # NOTE: If no radvd option and no dnsmasq option is configured
+        # port shall receive IP from fixed IPs list of subnet.
         real_ip, eui_ip = self._get_ips_from_subnet()
         self._clean_network()
         self.assertNotEqual(eui_ip, real_ip,
@@ -171,11 +168,10 @@
 
     @test.idempotent_id('4544adf7-bb5f-4bdc-b769-b3e77026cef2')
     def test_dhcpv6_two_subnets(self):
-        """When one IPv6 subnet configured with dnsmasq SLAAC or DHCP stateless
-        and other IPv6 is with DHCP stateful, port shall receive EUI-64 IP
-        addresses from first subnet and DHCP address from second one.
-        Order of subnet creating should be unimportant.
-        """
+        # NOTE: When one IPv6 subnet configured with dnsmasq SLAAC or DHCP
+        # stateless and other IPv6 is with DHCP stateful, port shall receive
+        # EUI-64 IP addresses from first subnet and DHCP address from second
+        # one. Order of subnet creating should be unimportant.
         for order in ("slaac_first", "dhcp_first"):
             for ra_mode, add_mode in (
                     ('slaac', 'slaac'),
@@ -221,11 +217,10 @@
 
     @test.idempotent_id('4256c61d-c538-41ea-9147-3c450c36669e')
     def test_dhcpv6_64_subnets(self):
-        """When one IPv6 subnet configured with dnsmasq SLAAC or DHCP stateless
-        and other IPv4 is with DHCP of IPv4, port shall receive EUI-64 IP
-        addresses from first subnet and IPv4 DHCP address from second one.
-        Order of subnet creating should be unimportant.
-        """
+        # NOTE: When one IPv6 subnet configured with dnsmasq SLAAC or DHCP
+        # stateless and other IPv4 is with DHCP of IPv4, port shall receive
+        # EUI-64 IP addresses from first subnet and IPv4 DHCP address from
+        # second one. Order of subnet creating should be unimportant.
         for order in ("slaac_first", "dhcp_first"):
             for ra_mode, add_mode in (
                     ('slaac', 'slaac'),
@@ -265,9 +260,8 @@
 
     @test.idempotent_id('4ab211a0-276f-4552-9070-51e27f58fecf')
     def test_dhcp_stateful(self):
-        """With all options below, DHCPv6 shall allocate address
-        from subnet pool to port.
-        """
+        # NOTE: With all options below, DHCPv6 shall allocate address from
+        # subnet pool to port.
         for ra_mode, add_mode in (
                 ('dhcpv6-stateful', 'dhcpv6-stateful'),
                 ('dhcpv6-stateful', None),
@@ -287,10 +281,9 @@
 
     @test.idempotent_id('51a5e97f-f02e-4e4e-9a17-a69811d300e3')
     def test_dhcp_stateful_fixedips(self):
-        """With all options below, port shall be able to get
-        requested IP from fixed IP range not depending on
-        DHCP stateful (not SLAAC!) settings configured.
-        """
+        # NOTE: With all options below, port shall be able to get
+        # requested IP from fixed IP range not depending on
+        # DHCP stateful (not SLAAC!) settings configured.
         for ra_mode, add_mode in (
                 ('dhcpv6-stateful', 'dhcpv6-stateful'),
                 ('dhcpv6-stateful', None),
@@ -316,9 +309,8 @@
 
     @test.idempotent_id('98244d88-d990-4570-91d4-6b25d70d08af')
     def test_dhcp_stateful_fixedips_outrange(self):
-        """When port gets IP address from fixed IP range it
-        shall be checked if it's from subnets range.
-        """
+        # NOTE: When port gets IP address from fixed IP range it
+        # shall be checked if it's from subnets range.
         kwargs = {'ipv6_ra_mode': 'dhcpv6-stateful',
                   'ipv6_address_mode': 'dhcpv6-stateful'}
         subnet = self.create_subnet(self.network, **kwargs)
@@ -334,9 +326,8 @@
 
     @test.idempotent_id('57b8302b-cba9-4fbb-8835-9168df029051')
     def test_dhcp_stateful_fixedips_duplicate(self):
-        """When port gets IP address from fixed IP range it
-        shall be checked if it's not duplicate.
-        """
+        # NOTE: When port gets IP address from fixed IP range it
+        # shall be checked if it's not duplicate.
         kwargs = {'ipv6_ra_mode': 'dhcpv6-stateful',
                   'ipv6_address_mode': 'dhcpv6-stateful'}
         subnet = self.create_subnet(self.network, **kwargs)
@@ -367,9 +358,8 @@
 
     @test.idempotent_id('e98f65db-68f4-4330-9fea-abd8c5192d4d')
     def test_dhcp_stateful_router(self):
-        """With all options below the router interface shall
-        receive DHCPv6 IP address from allocation pool.
-        """
+        # NOTE: With all options below the router interface shall
+        # receive DHCPv6 IP address from allocation pool.
         for ra_mode, add_mode in (
                 ('dhcpv6-stateful', 'dhcpv6-stateful'),
                 ('dhcpv6-stateful', None),
diff --git a/tempest/api/network/test_extensions.py b/tempest/api/network/test_extensions.py
index d6b03eb..b83d2b0 100644
--- a/tempest/api/network/test_extensions.py
+++ b/tempest/api/network/test_extensions.py
@@ -19,10 +19,7 @@
 
 
 class ExtensionsTestJSON(base.BaseNetworkTest):
-
-    """
-    Tests the following operations in the Neutron API using the REST client for
-    Neutron:
+    """Tests the following operations in the Neutron API:
 
         List all available extensions
 
diff --git a/tempest/api/network/test_extra_dhcp_options.py b/tempest/api/network/test_extra_dhcp_options.py
index 7924f38..062bc69 100644
--- a/tempest/api/network/test_extra_dhcp_options.py
+++ b/tempest/api/network/test_extra_dhcp_options.py
@@ -19,9 +19,7 @@
 
 
 class ExtraDHCPOptionsTestJSON(base.BaseNetworkTest):
-    """
-    Tests the following operations with the Extra DHCP Options Neutron API
-    extension:
+    """Tests the following operations with the Extra DHCP Options:
 
         port create
         port list
diff --git a/tempest/api/network/test_floating_ips.py b/tempest/api/network/test_floating_ips.py
index b796311..e9a553a 100644
--- a/tempest/api/network/test_floating_ips.py
+++ b/tempest/api/network/test_floating_ips.py
@@ -24,9 +24,7 @@
 
 
 class FloatingIPTestJSON(base.BaseNetworkTest):
-    """
-    Tests the following operations in the Neutron API using the REST client for
-    Neutron:
+    """Tests the following operations in the Neutron API:
 
         Create a Floating IP
         Update a Floating IP
diff --git a/tempest/api/network/test_floating_ips_negative.py b/tempest/api/network/test_floating_ips_negative.py
index e8624d8..5f56fec 100644
--- a/tempest/api/network/test_floating_ips_negative.py
+++ b/tempest/api/network/test_floating_ips_negative.py
@@ -25,8 +25,7 @@
 
 
 class FloatingIPNegativeTestJSON(base.BaseNetworkTest):
-    """
-    Test the following negative  operations for floating ips:
+    """Test the following negative operations for floating ips:
 
         Create floatingip with a port that is unreachable to external network
         Create floatingip in private network
diff --git a/tempest/api/network/test_metering_extensions.py b/tempest/api/network/test_metering_extensions.py
index ee0dcb0..a213f92 100644
--- a/tempest/api/network/test_metering_extensions.py
+++ b/tempest/api/network/test_metering_extensions.py
@@ -23,9 +23,7 @@
 
 
 class MeteringTestJSON(base.BaseAdminNetworkTest):
-    """
-    Tests the following operations in the Neutron API using the REST client for
-    Neutron:
+    """Tests the following operations in the Neutron API:
 
         List, Show, Create, Delete Metering labels
         List, Show, Create, Delete Metering labels rules
diff --git a/tempest/api/network/test_networks.py b/tempest/api/network/test_networks.py
index 5039a69..a266142 100644
--- a/tempest/api/network/test_networks.py
+++ b/tempest/api/network/test_networks.py
@@ -28,9 +28,7 @@
 
 
 class NetworksTest(base.BaseNetworkTest):
-    """
-    Tests the following operations in the Neutron API using the REST client for
-    Neutron:
+    """Tests the following operations in the Neutron API:
 
         create a network for a tenant
         list tenant's networks
@@ -95,9 +93,8 @@
 
     @classmethod
     def _create_subnet_with_last_subnet_block(cls, network, ip_version):
-        """Derive last subnet CIDR block from tenant CIDR and
-           create the subnet with that derived CIDR
-        """
+        # Derive last subnet CIDR block from tenant CIDR and
+        # create the subnet with that derived CIDR
         if ip_version == 4:
             cidr = netaddr.IPNetwork(CONF.network.tenant_network_cidr)
             mask_bits = CONF.network.tenant_network_mask_bits
@@ -133,9 +130,8 @@
         return [{'start': str(gateway + 2), 'end': str(gateway + 3)}]
 
     def subnet_dict(self, include_keys):
-        """Return a subnet dict which has include_keys and their corresponding
-           value from self._subnet_data
-        """
+        # Return a subnet dict which has include_keys and their corresponding
+        # value from self._subnet_data
         return dict((key, self._subnet_data[self._ip_version][key])
                     for key in include_keys)
 
@@ -405,9 +401,7 @@
 
 
 class BulkNetworkOpsTestJSON(base.BaseNetworkTest):
-    """
-    Tests the following operations in the Neutron API using the REST client for
-    Neutron:
+    """Tests the following operations in the Neutron API:
 
         bulk network creation
         bulk subnet creation
diff --git a/tempest/api/network/test_ports.py b/tempest/api/network/test_ports.py
index d0ed1f2..43da1c4 100644
--- a/tempest/api/network/test_ports.py
+++ b/tempest/api/network/test_ports.py
@@ -28,8 +28,7 @@
 
 
 class PortsTestJSON(sec_base.BaseSecGroupTest):
-    """
-    Test the following operations for ports:
+    """Test the following operations for ports:
 
         port create
         port delete
diff --git a/tempest/api/network/test_subnetpools_extensions.py b/tempest/api/network/test_subnetpools_extensions.py
index 09478ca..8a61ff8 100644
--- a/tempest/api/network/test_subnetpools_extensions.py
+++ b/tempest/api/network/test_subnetpools_extensions.py
@@ -22,9 +22,7 @@
 
 
 class SubnetPoolsTestJSON(base.BaseNetworkTest):
-    """
-    Tests the following operations in the subnetpools API using the REST client
-    for Neutron:
+    """Tests the following operations in the subnetpools API:
 
         Create a subnet pool.
         Update a subnet pool.