text: # Copyright 2014 Hewlett-Packard Development Company, L.P.
  # All Rights Reserved.
  #
  #    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 tempest.api.compute import base
  from tempest import config
  from tempest.lib import decorators
  
  CONF = config.CONF
  
  
  class NetworksTest(base.BaseV2ComputeAdminTest):
      """Tests Nova Networks API that usually requires admin privileges.
  
      API docs:
      https://developer.openstack.org/api-ref/compute/#networks-os-networks-deprecated
      """
      max_microversion = '2.35'
  
      @classmethod
      def setup_clients(cls):
          super(NetworksTest, cls).setup_clients()
          cls.client = cls.os_admin.compute_networks_client
  
      @decorators.idempotent_id('d206d211-8912-486f-86e2-a9d090d1f416')
      def test_get_network(self):
          networks = self.client.list_networks()['networks']
          if CONF.compute.fixed_network_name:
              configured_network = [x for x in networks if x['label'] ==
                                    CONF.compute.fixed_network_name]
              self.assertEqual(1, len(configured_network),
                               "{0} networks with label {1}".format(
                                   len(configured_network),
                                   CONF.compute.fixed_network_name))
          elif CONF.network.public_network_id:
              configured_network = [x for x in networks if x['id'] ==
                                    CONF.network.public_network_id]
          else:
              raise self.skipException(
                  "Environment has no known-for-sure existing network.")
          configured_network = configured_network[0]
          network = (self.client.show_network(configured_network['id'])
                     ['network'])
          self.assertEqual(configured_network['label'], network['label'])
  
      @decorators.idempotent_id('df3d1046-6fa5-4b2c-ad0c-cfa46a351cb9')
      def test_list_all_networks(self):
          networks = self.client.list_networks()['networks']
          # Check the configured network is in the list
          if CONF.compute.fixed_network_name:
              configured_network = CONF.compute.fixed_network_name
              self.assertIn(configured_network, [x['label'] for x in networks])
          else:
              network_labels = [x['label'] for x in networks]
              self.assertNotEmpty(network_labels)
  