summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-02-18 15:20:56 +0000
committerGerrit Code Review <review@openstack.org>2016-02-18 15:20:56 +0000
commit9774405f8e6edb5aad83866c7c94226ab15ab4cc (patch)
treeeec44e00d9cedfbc7e2689b6d04c87dd947167b9
parent1d1e43957dc785231c50a105229814b06eb74752 (diff)
parent8a2ed13620e78f4b82e68028e86745e8c86240b0 (diff)
downloadpython-novaclient-9774405f8e6edb5aad83866c7c94226ab15ab4cc.tar.gz
Merge "Allow to specify a network for functional tests"
-rw-r--r--novaclient/tests/functional/api/test_servers.py5
-rw-r--r--novaclient/tests/functional/base.py16
-rw-r--r--novaclient/tests/functional/v2/legacy/test_instances.py3
-rw-r--r--novaclient/tests/functional/v2/legacy/test_servers.py4
-rw-r--r--tox.ini2
5 files changed, 24 insertions, 6 deletions
diff --git a/novaclient/tests/functional/api/test_servers.py b/novaclient/tests/functional/api/test_servers.py
index df6671fa..936bfeac 100644
--- a/novaclient/tests/functional/api/test_servers.py
+++ b/novaclient/tests/functional/api/test_servers.py
@@ -19,7 +19,8 @@ class TestServersAPI(base.ClientTestBase):
def test_server_ips(self):
server_name = "test_server"
initial_server = self.client.servers.create(
- server_name, self.image, self.flavor)
+ server_name, self.image, self.flavor,
+ nics=[{"net-id": self.network.id}])
self.addCleanup(initial_server.delete)
for x in range(60):
@@ -32,4 +33,4 @@ class TestServersAPI(base.ClientTestBase):
self.fail("Server %s did not go ACTIVE after 60s" % server)
ips = self.client.servers.ips(server)
- self.assertIn('private', ips)
+ self.assertIn(self.network.label, ips)
diff --git a/novaclient/tests/functional/base.py b/novaclient/tests/functional/base.py
index 09e3a199..e148d0b8 100644
--- a/novaclient/tests/functional/base.py
+++ b/novaclient/tests/functional/base.py
@@ -45,6 +45,16 @@ def pick_image(images):
raise NoImageException()
+def pick_network(networks):
+ network_name = os.environ.get('OS_NOVACLIENT_NETWORK')
+ if network_name:
+ for network in networks:
+ if network.label == network_name:
+ return network
+ raise NoNetworkException()
+ return networks[0]
+
+
class NoImageException(Exception):
"""We couldn't find an acceptable image."""
pass
@@ -55,6 +65,11 @@ class NoFlavorException(Exception):
pass
+class NoNetworkException(Exception):
+ """We couldn't find an acceptable network."""
+ pass
+
+
class NoCloudConfigException(Exception):
"""We couldn't find a cloud configuration."""
pass
@@ -163,6 +178,7 @@ class ClientTestBase(testtools.TestCase):
# pick some reasonable flavor / image combo
self.flavor = pick_flavor(self.client.flavors.list())
self.image = pick_image(self.client.images.list())
+ self.network = pick_network(self.client.networks.list())
# create a CLI client in case we'd like to do CLI
# testing. tempest_lib does this really weird thing where it
diff --git a/novaclient/tests/functional/v2/legacy/test_instances.py b/novaclient/tests/functional/v2/legacy/test_instances.py
index d512106e..39e78ee5 100644
--- a/novaclient/tests/functional/v2/legacy/test_instances.py
+++ b/novaclient/tests/functional/v2/legacy/test_instances.py
@@ -40,10 +40,9 @@ class TestInstanceCLI(base.ClientTestBase):
name = self.name_generate('Instance')
# Boot via the cli, as we're primarily testing the cli in this test
- network = self.client.networks.list()[0]
self.nova('boot',
params="--flavor %s --image %s %s --nic net-id=%s --poll" %
- (self.flavor.name, self.image.name, name, network.id))
+ (self.flavor.name, self.image.name, name, self.network.id))
# Be nice about cleaning up, however, use the API for this to avoid
# parsing text.
diff --git a/novaclient/tests/functional/v2/legacy/test_servers.py b/novaclient/tests/functional/v2/legacy/test_servers.py
index 23d3835d..e13cd1ef 100644
--- a/novaclient/tests/functional/v2/legacy/test_servers.py
+++ b/novaclient/tests/functional/v2/legacy/test_servers.py
@@ -75,11 +75,11 @@ class TestServersListNovaClient(base.ClientTestBase):
COMPUTE_API_VERSION = "2.1"
def _create_servers(self, name, number):
- network = self.client.networks.list()[0]
servers = []
for i in range(number):
servers.append(self.client.servers.create(
- name, self.image, self.flavor, nics=[{"net-id": network.id}]))
+ name, self.image, self.flavor,
+ nics=[{"net-id": self.network.id}]))
shell._poll_for_status(
self.client.servers.get, servers[-1].id,
'building', ['active'])
diff --git a/tox.ini b/tox.ini
index 845523a4..b8a5004d 100644
--- a/tox.ini
+++ b/tox.ini
@@ -36,12 +36,14 @@ commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasen
[testenv:functional]
basepython = python2.7
+passenv = OS_NOVACLIENT_TEST_NETWORK
setenv =
OS_TEST_PATH = ./novaclient/tests/functional
commands = python setup.py testr --testr-args='--concurrency=1 {posargs}'
[testenv:functional-py34]
basepython = python3.4
+passenv = OS_NOVACLIENT_TEST_NETWORK
setenv =
OS_TEST_PATH = ./novaclient/tests/functional
commands = python setup.py testr --testr-args='--concurrency=1 {posargs}'