Merge "Implements test_(create|update)_metadata_key_error"
diff --git a/tempest/testboto.py b/tempest/testboto.py
index 8bcaa33..1b768ef 100644
--- a/tempest/testboto.py
+++ b/tempest/testboto.py
@@ -122,7 +122,8 @@
return string + ")"
-class BotoTestCase(testtools.TestCase,
+class BotoTestCase(testtools.testcase.WithAttributes,
+ testtools.TestCase,
testresources.ResourcedTestCase):
"""Recommended to use as base class for boto related test."""
diff --git a/tempest/tests/boto/test_ec2_instance_run.py b/tempest/tests/boto/test_ec2_instance_run.py
index 1adb5fb..8358ef9 100644
--- a/tempest/tests/boto/test_ec2_instance_run.py
+++ b/tempest/tests/boto/test_ec2_instance_run.py
@@ -20,13 +20,13 @@
from boto.exception import EC2ResponseError
from boto.s3.key import Key
-from nose.plugins.attrib import attr
import testtools
from tempest import clients
from tempest.common.utils.data_utils import rand_name
from tempest.common.utils.linux.remote_client import RemoteClient
from tempest.exceptions import EC2RegisterImageException
+from tempest.test import attr
from tempest.testboto import BotoTestCase
import tempest.tests.boto
from tempest.tests.boto.utils.s3 import s3_upload_dir
diff --git a/tempest/tests/boto/test_ec2_keys.py b/tempest/tests/boto/test_ec2_keys.py
index dea895f..d96ee11 100644
--- a/tempest/tests/boto/test_ec2_keys.py
+++ b/tempest/tests/boto/test_ec2_keys.py
@@ -15,11 +15,11 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
import testtools
from tempest import clients
from tempest.common.utils.data_utils import rand_name
+from tempest.test import attr
from tempest.testboto import BotoTestCase
diff --git a/tempest/tests/boto/test_ec2_network.py b/tempest/tests/boto/test_ec2_network.py
index 76103c2..ef476a2 100644
--- a/tempest/tests/boto/test_ec2_network.py
+++ b/tempest/tests/boto/test_ec2_network.py
@@ -15,10 +15,10 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
import testtools
from tempest import clients
+from tempest.test import attr
from tempest.testboto import BotoTestCase
diff --git a/tempest/tests/boto/test_ec2_security_groups.py b/tempest/tests/boto/test_ec2_security_groups.py
index ed7bedb..5981408 100644
--- a/tempest/tests/boto/test_ec2_security_groups.py
+++ b/tempest/tests/boto/test_ec2_security_groups.py
@@ -15,11 +15,11 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
import testtools
from tempest import clients
from tempest.common.utils.data_utils import rand_name
+from tempest.test import attr
from tempest.testboto import BotoTestCase
diff --git a/tempest/tests/boto/test_ec2_volumes.py b/tempest/tests/boto/test_ec2_volumes.py
index 7397cdb..7d3c5ab 100644
--- a/tempest/tests/boto/test_ec2_volumes.py
+++ b/tempest/tests/boto/test_ec2_volumes.py
@@ -18,10 +18,10 @@
import logging
import time
-from nose.plugins.attrib import attr
import testtools
from tempest import clients
+from tempest.test import attr
from tempest.testboto import BotoTestCase
LOG = logging.getLogger(__name__)
diff --git a/tempest/tests/boto/test_s3_buckets.py b/tempest/tests/boto/test_s3_buckets.py
index 36aa319..a4d1927 100644
--- a/tempest/tests/boto/test_s3_buckets.py
+++ b/tempest/tests/boto/test_s3_buckets.py
@@ -15,11 +15,11 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
import testtools
from tempest import clients
from tempest.common.utils.data_utils import rand_name
+from tempest.test import attr
from tempest.testboto import BotoTestCase
diff --git a/tempest/tests/boto/test_s3_ec2_images.py b/tempest/tests/boto/test_s3_ec2_images.py
index e0dc124..da248e1 100644
--- a/tempest/tests/boto/test_s3_ec2_images.py
+++ b/tempest/tests/boto/test_s3_ec2_images.py
@@ -19,11 +19,11 @@
import os
from boto.s3.key import Key
-from nose.plugins.attrib import attr
import testtools
from tempest import clients
from tempest.common.utils.data_utils import rand_name
+from tempest.test import attr
from tempest.testboto import BotoTestCase
import tempest.tests.boto
from tempest.tests.boto.utils.s3 import s3_upload_dir
diff --git a/tempest/tests/boto/test_s3_objects.py b/tempest/tests/boto/test_s3_objects.py
index cacd99f..e7bc4b1 100644
--- a/tempest/tests/boto/test_s3_objects.py
+++ b/tempest/tests/boto/test_s3_objects.py
@@ -18,11 +18,11 @@
from contextlib import closing
from boto.s3.key import Key
-from nose.plugins.attrib import attr
import testtools
from tempest import clients
from tempest.common.utils.data_utils import rand_name
+from tempest.test import attr
from tempest.testboto import BotoTestCase
from tempest.tests import boto
diff --git a/tempest/tests/compute/admin/test_flavors.py b/tempest/tests/compute/admin/test_flavors.py
index 7b80011..fe977c1 100644
--- a/tempest/tests/compute/admin/test_flavors.py
+++ b/tempest/tests/compute/admin/test_flavors.py
@@ -15,12 +15,12 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
import testtools
from tempest.common.utils.data_utils import rand_int_id
from tempest.common.utils.data_utils import rand_name
from tempest import exceptions
+from tempest.test import attr
from tempest.tests import compute
from tempest.tests.compute import base
diff --git a/tempest/tests/compute/admin/test_quotas.py b/tempest/tests/compute/admin/test_quotas.py
index b2b515a..7c42550 100644
--- a/tempest/tests/compute/admin/test_quotas.py
+++ b/tempest/tests/compute/admin/test_quotas.py
@@ -15,12 +15,11 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
-
from tempest import exceptions
from tempest.services.compute.admin.json \
import quotas_client as adm_quotas_json
from tempest.services.compute.admin.xml import quotas_client as adm_quotas_xml
+from tempest.test import attr
from tempest.tests import compute
from tempest.tests.compute import base
diff --git a/tempest/tests/compute/base.py b/tempest/tests/compute/base.py
index 3810046..f2af1fc 100644
--- a/tempest/tests/compute/base.py
+++ b/tempest/tests/compute/base.py
@@ -33,7 +33,8 @@
LOG = logging.getLogger(__name__)
-class BaseCompTest(testtools.TestCase,
+class BaseCompTest(testtools.testcase.WithAttributes,
+ testtools.TestCase,
testresources.ResourcedTestCase):
"""Base test case class for all Compute API tests."""
diff --git a/tempest/tests/compute/flavors/test_flavors.py b/tempest/tests/compute/flavors/test_flavors.py
index 298984f..9d0720e 100644
--- a/tempest/tests/compute/flavors/test_flavors.py
+++ b/tempest/tests/compute/flavors/test_flavors.py
@@ -15,8 +15,8 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
from tempest import exceptions
+from tempest.test import attr
from tempest.tests.compute import base
diff --git a/tempest/tests/compute/floating_ips/test_floating_ips_actions.py b/tempest/tests/compute/floating_ips/test_floating_ips_actions.py
index 59faf66..9f0cda0 100644
--- a/tempest/tests/compute/floating_ips/test_floating_ips_actions.py
+++ b/tempest/tests/compute/floating_ips/test_floating_ips_actions.py
@@ -15,12 +15,12 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
import testtools
from tempest import clients
from tempest.common.utils.data_utils import rand_name
from tempest import exceptions
+from tempest.test import attr
from tempest.tests.compute import base
diff --git a/tempest/tests/compute/floating_ips/test_list_floating_ips.py b/tempest/tests/compute/floating_ips/test_list_floating_ips.py
index ea99e89..e534e3c 100644
--- a/tempest/tests/compute/floating_ips/test_list_floating_ips.py
+++ b/tempest/tests/compute/floating_ips/test_list_floating_ips.py
@@ -15,11 +15,11 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
import testtools
from tempest.common.utils.data_utils import rand_name
from tempest import exceptions
+from tempest.test import attr
from tempest.tests.compute import base
diff --git a/tempest/tests/compute/images/test_image_metadata.py b/tempest/tests/compute/images/test_image_metadata.py
index 94bdca7..7119a8e 100644
--- a/tempest/tests/compute/images/test_image_metadata.py
+++ b/tempest/tests/compute/images/test_image_metadata.py
@@ -15,10 +15,9 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
-
from tempest.common.utils.data_utils import rand_name
from tempest import exceptions
+from tempest.test import attr
from tempest.tests.compute.base import BaseComputeTest
diff --git a/tempest/tests/compute/images/test_images.py b/tempest/tests/compute/images/test_images.py
index 1fc03b8..446ef50 100644
--- a/tempest/tests/compute/images/test_images.py
+++ b/tempest/tests/compute/images/test_images.py
@@ -15,7 +15,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
import testtools
from tempest import clients
@@ -23,6 +22,7 @@
from tempest.common.utils.data_utils import rand_name
import tempest.config
from tempest import exceptions
+from tempest.test import attr
from tempest.tests import compute
from tempest.tests.compute import base
diff --git a/tempest/tests/compute/images/test_images_oneserver.py b/tempest/tests/compute/images/test_images_oneserver.py
index 232d5d3..5cc921b 100644
--- a/tempest/tests/compute/images/test_images_oneserver.py
+++ b/tempest/tests/compute/images/test_images_oneserver.py
@@ -15,7 +15,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
import testtools
from tempest import clients
@@ -23,6 +22,7 @@
from tempest.common.utils.data_utils import rand_name
import tempest.config
from tempest import exceptions
+from tempest.test import attr
from tempest.tests import compute
from tempest.tests.compute import base
diff --git a/tempest/tests/compute/images/test_images_whitebox.py b/tempest/tests/compute/images/test_images_whitebox.py
index b2419b4..88f3b53 100644
--- a/tempest/tests/compute/images/test_images_whitebox.py
+++ b/tempest/tests/compute/images/test_images_whitebox.py
@@ -15,10 +15,9 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
-
from tempest.common.utils.data_utils import rand_name
from tempest import exceptions
+from tempest.test import attr
from tempest.tests.compute import base
from tempest import whitebox
diff --git a/tempest/tests/compute/images/test_list_image_filters.py b/tempest/tests/compute/images/test_list_image_filters.py
index 26119e3..316d90a 100644
--- a/tempest/tests/compute/images/test_list_image_filters.py
+++ b/tempest/tests/compute/images/test_list_image_filters.py
@@ -15,11 +15,10 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
-
from tempest.common.utils.data_utils import parse_image_id
from tempest.common.utils.data_utils import rand_name
from tempest import exceptions
+from tempest.test import attr
from tempest.tests.compute.base import BaseComputeTest
diff --git a/tempest/tests/compute/images/test_list_images.py b/tempest/tests/compute/images/test_list_images.py
index da92ca8..b9b57ee 100644
--- a/tempest/tests/compute/images/test_list_images.py
+++ b/tempest/tests/compute/images/test_list_images.py
@@ -15,11 +15,10 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
-
from tempest.common.utils.data_utils import parse_image_id
from tempest.common.utils.data_utils import rand_name
from tempest import exceptions
+from tempest.test import attr
from tempest.tests.compute.base import BaseComputeTest
diff --git a/tempest/tests/compute/keypairs/test_keypairs.py b/tempest/tests/compute/keypairs/test_keypairs.py
index 45c9079..6f4569b 100644
--- a/tempest/tests/compute/keypairs/test_keypairs.py
+++ b/tempest/tests/compute/keypairs/test_keypairs.py
@@ -15,11 +15,11 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
import testtools
from tempest.common.utils.data_utils import rand_name
from tempest import exceptions
+from tempest.test import attr
from tempest.tests.compute.base import BaseComputeTestJSON
from tempest.tests.compute.base import BaseComputeTestXML
diff --git a/tempest/tests/compute/security_groups/test_security_group_rules.py b/tempest/tests/compute/security_groups/test_security_group_rules.py
index 805adf4..41ad2c8 100644
--- a/tempest/tests/compute/security_groups/test_security_group_rules.py
+++ b/tempest/tests/compute/security_groups/test_security_group_rules.py
@@ -15,10 +15,9 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
-
from tempest.common.utils.data_utils import rand_name
from tempest import exceptions
+from tempest.test import attr
from tempest.tests.compute import base
diff --git a/tempest/tests/compute/security_groups/test_security_groups.py b/tempest/tests/compute/security_groups/test_security_groups.py
index 5c0bd82..f6caf2b 100644
--- a/tempest/tests/compute/security_groups/test_security_groups.py
+++ b/tempest/tests/compute/security_groups/test_security_groups.py
@@ -15,10 +15,9 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
-
from tempest.common.utils.data_utils import rand_name
from tempest import exceptions
+from tempest.test import attr
from tempest.tests.compute import base
diff --git a/tempest/tests/compute/servers/test_console_output.py b/tempest/tests/compute/servers/test_console_output.py
index 1eadbb5..78639f8 100644
--- a/tempest/tests/compute/servers/test_console_output.py
+++ b/tempest/tests/compute/servers/test_console_output.py
@@ -15,11 +15,11 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
import testtools
from tempest.common.utils.data_utils import rand_name
from tempest import exceptions
+from tempest.test import attr
from tempest.tests.compute import base
diff --git a/tempest/tests/compute/servers/test_create_server.py b/tempest/tests/compute/servers/test_create_server.py
index 0dcc79f..54f1131 100644
--- a/tempest/tests/compute/servers/test_create_server.py
+++ b/tempest/tests/compute/servers/test_create_server.py
@@ -17,13 +17,13 @@
import base64
-from nose.plugins.attrib import attr
import testtools
from tempest.common.utils.data_utils import rand_name
from tempest.common.utils.linux.remote_client import RemoteClient
import tempest.config
+from tempest.test import attr
from tempest.tests import compute
from tempest.tests.compute import base
diff --git a/tempest/tests/compute/servers/test_disk_config.py b/tempest/tests/compute/servers/test_disk_config.py
index c3a37ff..3987e69 100644
--- a/tempest/tests/compute/servers/test_disk_config.py
+++ b/tempest/tests/compute/servers/test_disk_config.py
@@ -15,11 +15,11 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
import testtools
from tempest.common.utils.data_utils import rand_name
from tempest import exceptions
+from tempest.test import attr
from tempest.tests import compute
from tempest.tests.compute.base import BaseComputeTest
diff --git a/tempest/tests/compute/servers/test_list_server_filters.py b/tempest/tests/compute/servers/test_list_server_filters.py
index 45ea3a0..e07a905 100644
--- a/tempest/tests/compute/servers/test_list_server_filters.py
+++ b/tempest/tests/compute/servers/test_list_server_filters.py
@@ -16,11 +16,11 @@
# under the License.
-from nose.plugins.attrib import attr
import testtools
from tempest.common.utils.data_utils import rand_name
from tempest import exceptions
+from tempest.test import attr
from tempest.tests.compute import base
from tempest.tests import utils
diff --git a/tempest/tests/compute/servers/test_server_actions.py b/tempest/tests/compute/servers/test_server_actions.py
index fd35461..693b0bf 100644
--- a/tempest/tests/compute/servers/test_server_actions.py
+++ b/tempest/tests/compute/servers/test_server_actions.py
@@ -18,13 +18,13 @@
import base64
import time
-from nose.plugins.attrib import attr
import testtools
from tempest.common.utils.data_utils import rand_name
from tempest.common.utils.linux.remote_client import RemoteClient
import tempest.config
from tempest import exceptions
+from tempest.test import attr
from tempest.tests import compute
from tempest.tests.compute import base
@@ -136,7 +136,7 @@
self.client.wait_for_server_status(self.server_id, 'ACTIVE')
resp, server = self.client.get_server(self.server_id)
- self.assertEqual(self.flavor_ref_alt, server['flavor']['id'])
+ self.assertEqual(self.flavor_ref_alt, int(server['flavor']['id']))
@attr(type='positive')
@testtools.skipIf(not resize_available, 'Resize not available.')
diff --git a/tempest/tests/compute/servers/test_server_addresses.py b/tempest/tests/compute/servers/test_server_addresses.py
index 6b0f7ae..8888281 100644
--- a/tempest/tests/compute/servers/test_server_addresses.py
+++ b/tempest/tests/compute/servers/test_server_addresses.py
@@ -15,10 +15,9 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
-
from tempest.common.utils.data_utils import rand_name
from tempest import exceptions
+from tempest.test import attr
from tempest.tests.compute.base import BaseComputeTest
diff --git a/tempest/tests/compute/servers/test_server_metadata.py b/tempest/tests/compute/servers/test_server_metadata.py
index 1fe5bb3..a214d15 100644
--- a/tempest/tests/compute/servers/test_server_metadata.py
+++ b/tempest/tests/compute/servers/test_server_metadata.py
@@ -15,10 +15,9 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
-
from tempest.common.utils.data_utils import rand_name
from tempest import exceptions
+from tempest.test import attr
from tempest.tests.compute.base import BaseComputeTest
diff --git a/tempest/tests/compute/servers/test_server_personality.py b/tempest/tests/compute/servers/test_server_personality.py
index e98e559..862cfb2 100644
--- a/tempest/tests/compute/servers/test_server_personality.py
+++ b/tempest/tests/compute/servers/test_server_personality.py
@@ -17,10 +17,9 @@
import base64
-from nose.plugins.attrib import attr
-
from tempest.common.utils.data_utils import rand_name
from tempest import exceptions
+from tempest.test import attr
from tempest.tests.compute import base
diff --git a/tempest/tests/compute/servers/test_servers.py b/tempest/tests/compute/servers/test_servers.py
index e0d4d44..fbcfe85 100644
--- a/tempest/tests/compute/servers/test_servers.py
+++ b/tempest/tests/compute/servers/test_servers.py
@@ -15,9 +15,8 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
-
from tempest.common.utils.data_utils import rand_name
+from tempest.test import attr
from tempest.tests.compute import base
diff --git a/tempest/tests/compute/servers/test_servers_negative.py b/tempest/tests/compute/servers/test_servers_negative.py
index ea63360..55d9581 100644
--- a/tempest/tests/compute/servers/test_servers_negative.py
+++ b/tempest/tests/compute/servers/test_servers_negative.py
@@ -17,12 +17,12 @@
import sys
-from nose.plugins.attrib import attr
import testtools
from tempest import clients
from tempest.common.utils.data_utils import rand_name
from tempest import exceptions
+from tempest.test import attr
from tempest.tests.compute.base import BaseComputeTest
diff --git a/tempest/tests/compute/servers/test_servers_whitebox.py b/tempest/tests/compute/servers/test_servers_whitebox.py
index 502f16b..94502c3 100644
--- a/tempest/tests/compute/servers/test_servers_whitebox.py
+++ b/tempest/tests/compute/servers/test_servers_whitebox.py
@@ -15,9 +15,8 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
-
from tempest import exceptions
+from tempest.test import attr
from tempest.tests.identity.base import BaseIdentityAdminTest
from tempest import whitebox
diff --git a/tempest/tests/compute/test_extensions.py b/tempest/tests/compute/test_extensions.py
index 829e295..36a04d2 100644
--- a/tempest/tests/compute/test_extensions.py
+++ b/tempest/tests/compute/test_extensions.py
@@ -15,8 +15,8 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
+from tempest.test import attr
from tempest.tests.compute import base
diff --git a/tempest/tests/compute/test_live_block_migration.py b/tempest/tests/compute/test_live_block_migration.py
index 1b651ab..d22e6b5 100644
--- a/tempest/tests/compute/test_live_block_migration.py
+++ b/tempest/tests/compute/test_live_block_migration.py
@@ -18,7 +18,6 @@
import random
import string
-from nose.plugins.attrib import attr
import testtools
from tempest.common.utils.linux.remote_client import RemoteClient
@@ -26,6 +25,7 @@
from tempest import exceptions
from tempest.services.compute.json.hosts_client import HostsClientJSON
from tempest.services.compute.json.servers_client import ServersClientJSON
+from tempest.test import attr
from tempest.tests.compute import base
diff --git a/tempest/tests/compute/test_quotas.py b/tempest/tests/compute/test_quotas.py
index 370840e..c2ad358 100644
--- a/tempest/tests/compute/test_quotas.py
+++ b/tempest/tests/compute/test_quotas.py
@@ -15,8 +15,7 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
-
+from tempest.test import attr
from tempest.tests.compute import base
diff --git a/tempest/tests/compute/volumes/test_attach_volume.py b/tempest/tests/compute/volumes/test_attach_volume.py
index 0e0e4a5..edf3179 100644
--- a/tempest/tests/compute/volumes/test_attach_volume.py
+++ b/tempest/tests/compute/volumes/test_attach_volume.py
@@ -15,13 +15,13 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
import testtools
from tempest import clients
from tempest.common.utils.data_utils import rand_name
from tempest.common.utils.linux.remote_client import RemoteClient
import tempest.config
+from tempest.test import attr
from tempest.tests.compute import base
diff --git a/tempest/tests/compute/volumes/test_volumes_get.py b/tempest/tests/compute/volumes/test_volumes_get.py
index afb00cd..edbfc32 100644
--- a/tempest/tests/compute/volumes/test_volumes_get.py
+++ b/tempest/tests/compute/volumes/test_volumes_get.py
@@ -15,9 +15,8 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
-
from tempest.common.utils.data_utils import rand_name
+from tempest.test import attr
from tempest.tests.compute import base
diff --git a/tempest/tests/identity/admin/test_services.py b/tempest/tests/identity/admin/test_services.py
index b74266c..0246f8c 100644
--- a/tempest/tests/identity/admin/test_services.py
+++ b/tempest/tests/identity/admin/test_services.py
@@ -16,10 +16,9 @@
# under the License.
-from nose.plugins.attrib import attr
-
from tempest.common.utils.data_utils import rand_name
from tempest import exceptions
+from tempest.test import attr
from tempest.tests.identity import base
diff --git a/tempest/tests/identity/admin/test_tenants.py b/tempest/tests/identity/admin/test_tenants.py
index 54383f1..9321b07 100644
--- a/tempest/tests/identity/admin/test_tenants.py
+++ b/tempest/tests/identity/admin/test_tenants.py
@@ -17,9 +17,9 @@
import testtools
-from nose.plugins.attrib import attr
from tempest.common.utils.data_utils import rand_name
from tempest import exceptions
+from tempest.test import attr
from tempest.tests.identity import base
diff --git a/tempest/tests/identity/admin/test_users.py b/tempest/tests/identity/admin/test_users.py
index ef7d934..8396b91 100644
--- a/tempest/tests/identity/admin/test_users.py
+++ b/tempest/tests/identity/admin/test_users.py
@@ -15,9 +15,9 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
from tempest.common.utils.data_utils import rand_name
from tempest import exceptions
+from tempest.test import attr
from tempest.tests.identity import base
import testtools
from testtools.matchers._basic import Contains
diff --git a/tempest/tests/identity/base.py b/tempest/tests/identity/base.py
index cbd943e..fbff88f 100644
--- a/tempest/tests/identity/base.py
+++ b/tempest/tests/identity/base.py
@@ -21,7 +21,8 @@
from tempest.common.utils.data_utils import rand_name
-class BaseIdAdminTest(testtools.TestCase):
+class BaseIdAdminTest(testtools.testcase.WithAttributes,
+ testtools.TestCase):
@classmethod
def setUpClass(cls):
diff --git a/tempest/tests/image/test_images.py b/tempest/tests/image/test_images.py
index 0a1a25f..b8bc1c5 100644
--- a/tempest/tests/image/test_images.py
+++ b/tempest/tests/image/test_images.py
@@ -20,7 +20,7 @@
import testtools
-from nose.plugins.attrib import attr
+from tempest.test import attr
GLANCE_INSTALLED = False
@@ -33,7 +33,8 @@
from tempest import clients
-class CreateRegisterImagesTest(testtools.TestCase):
+class CreateRegisterImagesTest(testtools.testcase.WithAttributes,
+ testtools.TestCase):
"""
Here we test the registration and creation of images
@@ -128,7 +129,8 @@
self.assertEqual('active', results.status)
-class ListImagesTest(testtools.TestCase):
+class ListImagesTest(testtools.testcase.WithAttributes,
+ testtools.TestCase):
"""
Here we test the listing of image information
diff --git a/tempest/tests/network/base.py b/tempest/tests/network/base.py
index 01330cc..5af7e2c 100644
--- a/tempest/tests/network/base.py
+++ b/tempest/tests/network/base.py
@@ -22,7 +22,8 @@
from tempest import exceptions
-class BaseNetworkTest(testtools.TestCase):
+class BaseNetworkTest(testtools.testcase.WithAttributes,
+ testtools.TestCase):
@classmethod
def setUpClass(cls):
diff --git a/tempest/tests/network/test_networks.py b/tempest/tests/network/test_networks.py
index d7f09c4..136279f 100644
--- a/tempest/tests/network/test_networks.py
+++ b/tempest/tests/network/test_networks.py
@@ -15,7 +15,7 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
+from tempest.test import attr
from tempest.common.utils.data_utils import rand_name
from tempest.tests.network import base
diff --git a/tempest/tests/object_storage/base.py b/tempest/tests/object_storage/base.py
index 8c32ffc..376deb7 100644
--- a/tempest/tests/object_storage/base.py
+++ b/tempest/tests/object_storage/base.py
@@ -23,7 +23,8 @@
from tempest.tests.identity.base import DataGenerator
-class BaseObjectTest(testtools.TestCase):
+class BaseObjectTest(testtools.testcase.WithAttributes,
+ testtools.TestCase):
@classmethod
def setUpClass(cls):
diff --git a/tempest/tests/object_storage/test_account_services.py b/tempest/tests/object_storage/test_account_services.py
index e34e349..14f94f7 100644
--- a/tempest/tests/object_storage/test_account_services.py
+++ b/tempest/tests/object_storage/test_account_services.py
@@ -15,9 +15,9 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
from tempest.common.utils.data_utils import rand_name
from tempest import exceptions
+from tempest.test import attr
from tempest.tests.object_storage import base
diff --git a/tempest/tests/object_storage/test_container_services.py b/tempest/tests/object_storage/test_container_services.py
index fe09341..2c5b1ff 100644
--- a/tempest/tests/object_storage/test_container_services.py
+++ b/tempest/tests/object_storage/test_container_services.py
@@ -15,10 +15,9 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
-
from tempest.common.utils.data_utils import arbitrary_string
from tempest.common.utils.data_utils import rand_name
+from tempest.test import attr
from tempest.tests.object_storage import base
diff --git a/tempest/tests/object_storage/test_container_sync.py b/tempest/tests/object_storage/test_container_sync.py
index f156f45..f087aff 100644
--- a/tempest/tests/object_storage/test_container_sync.py
+++ b/tempest/tests/object_storage/test_container_sync.py
@@ -15,9 +15,9 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
from tempest.common.utils.data_utils import arbitrary_string
from tempest.common.utils.data_utils import rand_name
+from tempest.test import attr
from tempest.tests.object_storage import base
import testtools
import time
diff --git a/tempest/tests/object_storage/test_object_expiry.py b/tempest/tests/object_storage/test_object_expiry.py
index 8e6b23b..1738ddf 100644
--- a/tempest/tests/object_storage/test_object_expiry.py
+++ b/tempest/tests/object_storage/test_object_expiry.py
@@ -15,10 +15,10 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
from tempest.common.utils.data_utils import arbitrary_string
from tempest.common.utils.data_utils import rand_name
from tempest import exceptions
+from tempest.test import attr
from tempest.tests.object_storage import base
import testtools
from time import sleep
diff --git a/tempest/tests/object_storage/test_object_services.py b/tempest/tests/object_storage/test_object_services.py
index d5b6d5c..e0a2fbb 100644
--- a/tempest/tests/object_storage/test_object_services.py
+++ b/tempest/tests/object_storage/test_object_services.py
@@ -15,11 +15,10 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
-
from tempest.common.utils.data_utils import arbitrary_string
from tempest.common.utils.data_utils import rand_name
from tempest import exceptions
+from tempest.test import attr
from tempest.tests.object_storage import base
import testtools
from time import time
diff --git a/tempest/tests/object_storage/test_object_version.py b/tempest/tests/object_storage/test_object_version.py
index 28e0893..bc1c045 100644
--- a/tempest/tests/object_storage/test_object_version.py
+++ b/tempest/tests/object_storage/test_object_version.py
@@ -15,8 +15,8 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
from tempest.common.utils.data_utils import rand_name
+from tempest.test import attr
from tempest.tests.object_storage import base
diff --git a/tempest/tests/volume/base.py b/tempest/tests/volume/base.py
index 49918e8..6625180 100644
--- a/tempest/tests/volume/base.py
+++ b/tempest/tests/volume/base.py
@@ -28,7 +28,8 @@
LOG = logging.getLogger(__name__)
-class BaseVolumeTest(testtools.TestCase):
+class BaseVolumeTest(testtools.testcase.WithAttributes,
+ testtools.TestCase):
"""Base test case class for all Cinder API tests."""
diff --git a/tempest/tests/volume/test_volumes_actions.py b/tempest/tests/volume/test_volumes_actions.py
index dd93b89..fb9b975 100644
--- a/tempest/tests/volume/test_volumes_actions.py
+++ b/tempest/tests/volume/test_volumes_actions.py
@@ -15,9 +15,8 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
-
from tempest.common.utils.data_utils import rand_name
+from tempest.test import attr
from tempest.tests.volume.base import BaseVolumeTest
diff --git a/tempest/tests/volume/test_volumes_get.py b/tempest/tests/volume/test_volumes_get.py
index bc64ff4..bd271ed 100644
--- a/tempest/tests/volume/test_volumes_get.py
+++ b/tempest/tests/volume/test_volumes_get.py
@@ -15,9 +15,8 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
-
from tempest.common.utils.data_utils import rand_name
+from tempest.test import attr
from tempest.tests.volume import base
diff --git a/tempest/tests/volume/test_volumes_list.py b/tempest/tests/volume/test_volumes_list.py
index 92d3d3f..64691d4 100644
--- a/tempest/tests/volume/test_volumes_list.py
+++ b/tempest/tests/volume/test_volumes_list.py
@@ -15,10 +15,8 @@
# License for the specific language governing permissions and limitations
# under the License.
-import nose
-from nose.plugins.attrib import attr
-
from tempest.common.utils.data_utils import rand_name
+from tempest.test import attr
from tempest.tests.volume import base
diff --git a/tempest/tests/volume/test_volumes_snapshots.py b/tempest/tests/volume/test_volumes_snapshots.py
index 1e87525..75ea155 100644
--- a/tempest/tests/volume/test_volumes_snapshots.py
+++ b/tempest/tests/volume/test_volumes_snapshots.py
@@ -12,8 +12,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nose.plugins.attrib import attr
-
from tempest.common.utils.data_utils import rand_name
from tempest.tests.volume import base