Merge "Added Swift tests: * account: delete account metadata * container: retrieve/delete container metadata * object: retrieve/copy(2 ways) object Syntax bug fix in container_client.py: return resp. body => return resp, body Fixed passing headers parameter in head method in rest_client.py: return self.request('HEAD', url, headers) Removed unused imports."
diff --git a/README.rst b/README.rst
index 0ea5229..04a4b3e 100644
--- a/README.rst
+++ b/README.rst
@@ -35,13 +35,18 @@
In addition, the ``<devstack-repo>/tools/configure_tempest.sh`` script can
also be used to generate a tempest.conf based on your devstack's rc files.
+ TEMPEST_DIR variable points to location /opt/stack/temptest. Update this
+ variable if the location is different..
Tempest is not tied to any single test runner, but Nose been the most commonly
used tool. After setting up your configuration file, you can execute
the set of Tempest tests by using ``nosetests`` ::
-
$> nosetests tempest
+To run one single test ::
+ $> nosetests -sv tempest.tests.compute.servers.test_server_actions.py:
+ ServerActionsTestJSON.test_rebuild_nonexistent_server
+
Configuration
-------------
diff --git a/run_tests.sh b/run_tests.sh
index 680f79e..e359caf 100755
--- a/run_tests.sh
+++ b/run_tests.sh
@@ -23,7 +23,7 @@
esac
}
-noseargs="tempest"
+noseargs=""
just_pep8=0
export NOSE_WITH_OPENSTACK=1
@@ -37,13 +37,22 @@
process_option $arg
done
+
+# only add tempest default if we don't specify a test
+if [[ "x$noseargs" =~ "tempest" ]]; then
+ noseargs="$noseargs"
+else
+ noseargs="$noseargs tempest"
+fi
+
+
function run_tests {
$NOSETESTS
}
function run_pep8 {
echo "Running pep8 ..."
- PEP8_EXCLUDE="etc,include,tools"
+ PEP8_EXCLUDE="etc,include,tools,*venv"
PEP8_OPTIONS="--exclude=$PEP8_EXCLUDE --repeat"
PEP8_INCLUDE="."
pep8 $PEP8_OPTIONS $PEP8_INCLUDE
diff --git a/tempest/tests/compute/images/test_images_whitebox.py b/tempest/tests/compute/images/test_images_whitebox.py
index f371fe4..40433a7 100644
--- a/tempest/tests/compute/images/test_images_whitebox.py
+++ b/tempest/tests/compute/images/test_images_whitebox.py
@@ -50,7 +50,7 @@
cls.image_ids.remove(image_id)
@classmethod
- def update_state(self, server_id, vm_state, task_state, deleted=0):
+ def update_state(self, server_id, vm_state, task_state, deleted=False):
"""Update states of an instance in database for validation"""
if not task_state:
task_state = "NULL"
@@ -63,7 +63,7 @@
self.connection.execute(stmt, autocommit=True)
- def _test_create_image_409_base(self, vm_state, task_state, deleted=0):
+ def _test_create_image_409_base(self, vm_state, task_state, deleted=False):
"""Base method for create image tests based on vm and task states"""
try:
self.update_state(self.shared_server['id'], vm_state,
diff --git a/tempest/tests/compute/servers/test_server_metadata.py b/tempest/tests/compute/servers/test_server_metadata.py
index f59b609..4022dad 100644
--- a/tempest/tests/compute/servers/test_server_metadata.py
+++ b/tempest/tests/compute/servers/test_server_metadata.py
@@ -18,6 +18,7 @@
from nose.plugins.attrib import attr
from tempest.common.utils.data_utils import rand_name
+from tempest import exceptions
from tempest.tests.compute.base import BaseComputeTest
@@ -69,7 +70,6 @@
resp, resp_metadata = self.client.list_server_metadata(self.server_id)
self.assertEqual(resp_metadata, req_metadata)
- @attr(type='negative')
def test_server_create_metadata_key_too_long(self):
"""
Attempt to start a server with a meta-data key that is > 255 characters
@@ -79,14 +79,10 @@
key = "k" * sz
meta = {key: 'data1'}
name = rand_name('server')
- try:
- resp, server = self.client.create_server(name, self.image_ref,
- self.flavor_ref,
- meta=meta)
- except:
- pass
- else:
- self.fail('Metadata should have been too long')
+ self.assertRaises(exceptions.OverLimit,
+ self.client.create_server, name, self.image_ref,
+ self.flavor_ref, meta=meta)
+
# no teardown - all creates should fail
def test_update_server_metadata(self):
diff --git a/tempest/tests/compute/servers/test_servers_whitebox.py b/tempest/tests/compute/servers/test_servers_whitebox.py
index 152b3f7..980f6cf 100644
--- a/tempest/tests/compute/servers/test_servers_whitebox.py
+++ b/tempest/tests/compute/servers/test_servers_whitebox.py
@@ -63,7 +63,7 @@
# Set vcpu quota for tenant if not already set
if not result:
cores_hard_limit = 2
- stmt = quotas.insert().values(deleted=0,
+ stmt = quotas.insert().values(deleted=False,
project_id=self.tenant_id,
resource='cores',
hard_limit=cores_hard_limit)
@@ -95,7 +95,7 @@
# Set memory quota for tenant if not already set
if not result:
ram_hard_limit = 1024
- stmt = quotas.insert().values(deleted=0,
+ stmt = quotas.insert().values(deleted=False,
project_id=self.tenant_id,
resource='ram',
hard_limit=ram_hard_limit)
@@ -116,7 +116,7 @@
stmt = quotas.delete()
self.connection.execute(stmt, autocommit=True)
- def update_state(self, server_id, vm_state, task_state, deleted=0):
+ def update_state(self, server_id, vm_state, task_state, deleted=False):
"""Update states of an instance in database for validation"""
if not task_state:
task_state = 'NULL'
diff --git a/tempest/tests/compute/test_live_block_migration.py b/tempest/tests/compute/test_live_block_migration.py
index ae8b774..92c2cf6 100644
--- a/tempest/tests/compute/test_live_block_migration.py
+++ b/tempest/tests/compute/test_live_block_migration.py
@@ -81,7 +81,7 @@
random_name = ''.join(
random.choice(string.ascii_uppercase) for x in range(20))
- self.assertFalse(random_name in self._get_compute_hostnames())
+ self.assertNotIn(random_name, self._get_compute_hostnames())
return random_name
@@ -105,22 +105,15 @@
'Block Live migration not available')
def test_001_live_block_migration(self):
"""Live block migrate an instance to another host"""
-
if len(self._get_compute_hostnames()) < 2:
raise nose.SkipTest(
"Less than 2 compute nodes, skipping migration test.")
-
server_id = self._get_an_active_server()
-
actual_host = self._get_host_for_server(server_id)
-
target_host = self._get_host_other_than(actual_host)
-
self._migrate_server_to(server_id, target_host)
-
self.servers_client.wait_for_server_status(server_id, 'ACTIVE')
-
- self.assertTrue(target_host == self._get_host_for_server(server_id))
+ self.assertEquals(target_host, self._get_host_for_server(server_id))
@attr(type='positive', bug='lp1051881')
@unittest.skip('Until bug 1051881 is dealt with.')
@@ -130,12 +123,10 @@
"""Migrating to an invalid host should not change the status"""
server_id = self._get_an_active_server()
-
target_host = self._get_non_existing_host_name()
with self.assertRaises(exceptions.BadRequest) as cm:
self._migrate_server_to(server_id, target_host)
-
self.assertEquals('ACTIVE', self._get_server_status(server_id))
@classmethod