summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Martinelli <s.martinelli@gmail.com>2016-09-05 20:35:06 -0700
committerSteve Martinelli <s.martinelli@gmail.com>2016-09-09 03:29:47 +0000
commitc14d3efe6162a58cb3cdcb2834ad2508e2525018 (patch)
tree084f7a998a410957299db58a2449dbfb1dce20a9
parent39839def2e356e8d145be89380c73a71423cf06d (diff)
downloadpython-openstackclient-c14d3efe6162a58cb3cdcb2834ad2508e2525018.tar.gz
move all functional tests to tests module
functional tests should be grouped with other tests (unit and integration tests). as part of this commit the "common" module was renamed to just "base", this was done for simplicity. the post_test_hook.sh file was also copied to the functional module since it should live there. a separate change to the infra repo will be made to call the new location, once that is merged we can remove the old one (a new change will also be posted for that) Needed-By: I49d54f009021d65c1ae49faf6b3f0a7acdadd7b3 Change-Id: Ie8c334f6223373b8e06df8bd8466500d2a2c8ede
-rw-r--r--functional/tests/volume/v1/__init__.py0
-rw-r--r--functional/tests/volume/v2/__init__.py0
-rw-r--r--openstackclient/tests/functional/__init__.py (renamed from functional/__init__.py)0
-rw-r--r--openstackclient/tests/functional/base.py (renamed from functional/common/test.py)0
-rw-r--r--openstackclient/tests/functional/common/__init__.py (renamed from functional/common/__init__.py)0
-rw-r--r--openstackclient/tests/functional/common/test_availability_zone.py (renamed from functional/tests/common/test_availability_zone.py)4
-rw-r--r--openstackclient/tests/functional/common/test_configuration.py (renamed from functional/tests/common/test_configuration.py)4
-rw-r--r--openstackclient/tests/functional/common/test_help.py (renamed from functional/tests/common/test_help.py)4
-rw-r--r--openstackclient/tests/functional/common/test_quota.py (renamed from functional/tests/common/test_quota.py)4
-rw-r--r--openstackclient/tests/functional/compute/__init__.py (renamed from functional/tests/__init__.py)0
-rw-r--r--openstackclient/tests/functional/compute/v2/__init__.py (renamed from functional/tests/common/__init__.py)0
-rw-r--r--openstackclient/tests/functional/compute/v2/test_agent.py (renamed from functional/tests/compute/v2/test_agent.py)4
-rw-r--r--openstackclient/tests/functional/compute/v2/test_aggregate.py (renamed from functional/tests/compute/v2/test_aggregate.py)4
-rw-r--r--openstackclient/tests/functional/compute/v2/test_flavor.py (renamed from functional/tests/compute/v2/test_flavor.py)4
-rw-r--r--openstackclient/tests/functional/compute/v2/test_keypair.py (renamed from functional/tests/compute/v2/test_keypair.py)4
-rw-r--r--openstackclient/tests/functional/compute/v2/test_server.py (renamed from functional/tests/compute/v2/test_server.py)4
-rw-r--r--openstackclient/tests/functional/compute/v2/test_server_group.py (renamed from functional/tests/compute/v2/test_server_group.py)4
-rw-r--r--openstackclient/tests/functional/examples/__init__.py (renamed from functional/tests/compute/__init__.py)0
-rw-r--r--openstackclient/tests/functional/examples/test_examples.py (renamed from functional/tests/examples/test_examples.py)10
-rw-r--r--openstackclient/tests/functional/identity/__init__.py (renamed from functional/tests/compute/v2/__init__.py)0
-rw-r--r--openstackclient/tests/functional/identity/v2/__init__.py (renamed from functional/tests/examples/__init__.py)0
-rw-r--r--openstackclient/tests/functional/identity/v2/common.py (renamed from functional/tests/identity/v2/common.py)4
-rw-r--r--openstackclient/tests/functional/identity/v2/test_catalog.py (renamed from functional/tests/identity/v2/test_catalog.py)2
-rw-r--r--openstackclient/tests/functional/identity/v2/test_ec2_credentials.py (renamed from functional/tests/identity/v2/test_ec2_credentials.py)2
-rw-r--r--openstackclient/tests/functional/identity/v2/test_endpoint.py (renamed from functional/tests/identity/v2/test_endpoint.py)2
-rw-r--r--openstackclient/tests/functional/identity/v2/test_project.py (renamed from functional/tests/identity/v2/test_project.py)2
-rw-r--r--openstackclient/tests/functional/identity/v2/test_role.py (renamed from functional/tests/identity/v2/test_role.py)2
-rw-r--r--openstackclient/tests/functional/identity/v2/test_service.py (renamed from functional/tests/identity/v2/test_service.py)2
-rw-r--r--openstackclient/tests/functional/identity/v2/test_token.py (renamed from functional/tests/identity/v2/test_token.py)2
-rw-r--r--openstackclient/tests/functional/identity/v2/test_user.py (renamed from functional/tests/identity/v2/test_user.py)2
-rw-r--r--openstackclient/tests/functional/identity/v3/__init__.py (renamed from functional/tests/identity/__init__.py)0
-rw-r--r--openstackclient/tests/functional/identity/v3/common.py (renamed from functional/tests/identity/v3/common.py)4
-rw-r--r--openstackclient/tests/functional/identity/v3/test_catalog.py (renamed from functional/tests/identity/v3/test_catalog.py)2
-rw-r--r--openstackclient/tests/functional/identity/v3/test_domain.py (renamed from functional/tests/identity/v3/test_domain.py)2
-rw-r--r--openstackclient/tests/functional/identity/v3/test_endpoint.py (renamed from functional/tests/identity/v3/test_endpoint.py)2
-rw-r--r--openstackclient/tests/functional/identity/v3/test_group.py (renamed from functional/tests/identity/v3/test_group.py)2
-rw-r--r--openstackclient/tests/functional/identity/v3/test_idp.py (renamed from functional/tests/identity/v3/test_idp.py)2
-rw-r--r--openstackclient/tests/functional/identity/v3/test_project.py (renamed from functional/tests/identity/v3/test_project.py)2
-rw-r--r--openstackclient/tests/functional/identity/v3/test_region.py (renamed from functional/tests/identity/v3/test_region.py)2
-rw-r--r--openstackclient/tests/functional/identity/v3/test_role.py (renamed from functional/tests/identity/v3/test_role.py)2
-rw-r--r--openstackclient/tests/functional/identity/v3/test_service.py (renamed from functional/tests/identity/v3/test_service.py)2
-rw-r--r--openstackclient/tests/functional/identity/v3/test_service_provider.py (renamed from functional/tests/identity/v3/test_service_provider.py)2
-rw-r--r--openstackclient/tests/functional/identity/v3/test_token.py (renamed from functional/tests/identity/v3/test_token.py)2
-rw-r--r--openstackclient/tests/functional/identity/v3/test_user.py (renamed from functional/tests/identity/v3/test_user.py)2
-rw-r--r--openstackclient/tests/functional/image/__init__.py (renamed from functional/tests/identity/v2/__init__.py)0
-rw-r--r--openstackclient/tests/functional/image/v1/__init__.py (renamed from functional/tests/identity/v3/__init__.py)0
-rw-r--r--openstackclient/tests/functional/image/v1/test_image.py (renamed from functional/tests/image/v1/test_image.py)4
-rw-r--r--openstackclient/tests/functional/image/v2/__init__.py (renamed from functional/tests/image/__init__.py)0
-rw-r--r--openstackclient/tests/functional/image/v2/test_image.py (renamed from functional/tests/image/v2/test_image.py)4
-rw-r--r--openstackclient/tests/functional/network/__init__.py (renamed from functional/tests/image/v1/__init__.py)0
-rw-r--r--openstackclient/tests/functional/network/v2/__init__.py (renamed from functional/tests/image/v2/__init__.py)0
-rw-r--r--openstackclient/tests/functional/network/v2/test_address_scope.py (renamed from functional/tests/network/v2/test_address_scope.py)4
-rw-r--r--openstackclient/tests/functional/network/v2/test_floating_ip.py (renamed from functional/tests/network/v2/test_floating_ip.py)4
-rw-r--r--openstackclient/tests/functional/network/v2/test_ip_availability.py (renamed from functional/tests/network/v2/test_ip_availability.py)4
-rw-r--r--openstackclient/tests/functional/network/v2/test_network.py (renamed from functional/tests/network/v2/test_network.py)4
-rw-r--r--openstackclient/tests/functional/network/v2/test_network_agent.py (renamed from functional/tests/network/v2/test_network_agent.py)4
-rw-r--r--openstackclient/tests/functional/network/v2/test_network_rbac.py (renamed from functional/tests/network/v2/test_network_rbac.py)4
-rw-r--r--openstackclient/tests/functional/network/v2/test_network_segment.py (renamed from functional/tests/network/v2/test_network_segment.py)4
-rw-r--r--openstackclient/tests/functional/network/v2/test_port.py (renamed from functional/tests/network/v2/test_port.py)4
-rw-r--r--openstackclient/tests/functional/network/v2/test_router.py (renamed from functional/tests/network/v2/test_router.py)4
-rw-r--r--openstackclient/tests/functional/network/v2/test_security_group.py (renamed from functional/tests/network/v2/test_security_group.py)4
-rw-r--r--openstackclient/tests/functional/network/v2/test_security_group_rule.py (renamed from functional/tests/network/v2/test_security_group_rule.py)4
-rw-r--r--openstackclient/tests/functional/network/v2/test_subnet.py (renamed from functional/tests/network/v2/test_subnet.py)4
-rw-r--r--openstackclient/tests/functional/network/v2/test_subnet_pool.py (renamed from functional/tests/network/v2/test_subnet_pool.py)4
-rw-r--r--openstackclient/tests/functional/object/__init__.py (renamed from functional/tests/network/__init__.py)0
-rw-r--r--openstackclient/tests/functional/object/v1/__init__.py (renamed from functional/tests/network/v2/__init__.py)0
-rw-r--r--openstackclient/tests/functional/object/v1/test_container.py (renamed from functional/tests/object/v1/test_container.py)4
-rw-r--r--openstackclient/tests/functional/object/v1/test_object.py (renamed from functional/tests/object/v1/test_object.py)4
-rwxr-xr-xopenstackclient/tests/functional/post_test_hook.sh43
-rw-r--r--openstackclient/tests/functional/volume/__init__.py (renamed from functional/tests/object/__init__.py)0
-rw-r--r--openstackclient/tests/functional/volume/v1/__init__.py (renamed from functional/tests/object/v1/__init__.py)0
-rw-r--r--openstackclient/tests/functional/volume/v1/common.py (renamed from functional/tests/volume/v1/common.py)4
-rw-r--r--openstackclient/tests/functional/volume/v1/test_qos.py (renamed from functional/tests/volume/v1/test_qos.py)2
-rw-r--r--openstackclient/tests/functional/volume/v1/test_volume.py (renamed from functional/tests/volume/v1/test_volume.py)2
-rw-r--r--openstackclient/tests/functional/volume/v1/test_volume_type.py (renamed from functional/tests/volume/v1/test_volume_type.py)2
-rw-r--r--openstackclient/tests/functional/volume/v2/__init__.py (renamed from functional/tests/volume/__init__.py)0
-rw-r--r--openstackclient/tests/functional/volume/v2/common.py (renamed from functional/tests/volume/v2/common.py)4
-rw-r--r--openstackclient/tests/functional/volume/v2/test_qos.py (renamed from functional/tests/volume/v2/test_qos.py)2
-rw-r--r--openstackclient/tests/functional/volume/v2/test_snapshot.py (renamed from functional/tests/volume/v2/test_snapshot.py)2
-rw-r--r--openstackclient/tests/functional/volume/v2/test_volume.py (renamed from functional/tests/volume/v2/test_volume.py)2
-rw-r--r--openstackclient/tests/functional/volume/v2/test_volume_type.py (renamed from functional/tests/volume/v2/test_volume_type.py)2
-rw-r--r--tox.ini2
82 files changed, 138 insertions, 95 deletions
diff --git a/functional/tests/volume/v1/__init__.py b/functional/tests/volume/v1/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functional/tests/volume/v1/__init__.py
+++ /dev/null
diff --git a/functional/tests/volume/v2/__init__.py b/functional/tests/volume/v2/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functional/tests/volume/v2/__init__.py
+++ /dev/null
diff --git a/functional/__init__.py b/openstackclient/tests/functional/__init__.py
index e69de29b..e69de29b 100644
--- a/functional/__init__.py
+++ b/openstackclient/tests/functional/__init__.py
diff --git a/functional/common/test.py b/openstackclient/tests/functional/base.py
index f7f0361e..f7f0361e 100644
--- a/functional/common/test.py
+++ b/openstackclient/tests/functional/base.py
diff --git a/functional/common/__init__.py b/openstackclient/tests/functional/common/__init__.py
index e69de29b..e69de29b 100644
--- a/functional/common/__init__.py
+++ b/openstackclient/tests/functional/common/__init__.py
diff --git a/functional/tests/common/test_availability_zone.py b/openstackclient/tests/functional/common/test_availability_zone.py
index da8aad7d..f73e1ed9 100644
--- a/functional/tests/common/test_availability_zone.py
+++ b/openstackclient/tests/functional/common/test_availability_zone.py
@@ -10,10 +10,10 @@
# License for the specific language governing permissions and limitations
# under the License.
-from functional.common import test
+from openstackclient.tests.functional import base
-class AvailabilityZoneTests(test.TestCase):
+class AvailabilityZoneTests(base.TestCase):
"""Functional tests for availability zone. """
HEADERS = ["'Zone Name'"]
# So far, all components have the same default availability zone name.
diff --git a/functional/tests/common/test_configuration.py b/openstackclient/tests/functional/common/test_configuration.py
index 801ee10d..f47d3b00 100644
--- a/functional/tests/common/test_configuration.py
+++ b/openstackclient/tests/functional/common/test_configuration.py
@@ -12,14 +12,14 @@
import os
-from functional.common import test
from openstackclient.common import configuration
+from openstackclient.tests.functional import base
BASIC_CONFIG_HEADERS = ['Field', 'Value']
-class ConfigurationTests(test.TestCase):
+class ConfigurationTests(base.TestCase):
opts = "-f value -c auth.password"
diff --git a/functional/tests/common/test_help.py b/openstackclient/tests/functional/common/test_help.py
index 7601c41b..bbc52197 100644
--- a/functional/tests/common/test_help.py
+++ b/openstackclient/tests/functional/common/test_help.py
@@ -10,10 +10,10 @@
# License for the specific language governing permissions and limitations
# under the License.
-from functional.common import test
+from openstackclient.tests.functional import base
-class HelpTests(test.TestCase):
+class HelpTests(base.TestCase):
"""Functional tests for openstackclient help output."""
SERVER_COMMANDS = [
diff --git a/functional/tests/common/test_quota.py b/openstackclient/tests/functional/common/test_quota.py
index 0316de25..fd45be38 100644
--- a/functional/tests/common/test_quota.py
+++ b/openstackclient/tests/functional/common/test_quota.py
@@ -10,10 +10,10 @@
# License for the specific language governing permissions and limitations
# under the License.
-from functional.common import test
+from openstackclient.tests.functional import base
-class QuotaTests(test.TestCase):
+class QuotaTests(base.TestCase):
"""Functional tests for quota. """
# Test quota information for compute, network and volume.
EXPECTED_FIELDS = ['instances', 'networks', 'volumes']
diff --git a/functional/tests/__init__.py b/openstackclient/tests/functional/compute/__init__.py
index e69de29b..e69de29b 100644
--- a/functional/tests/__init__.py
+++ b/openstackclient/tests/functional/compute/__init__.py
diff --git a/functional/tests/common/__init__.py b/openstackclient/tests/functional/compute/v2/__init__.py
index e69de29b..e69de29b 100644
--- a/functional/tests/common/__init__.py
+++ b/openstackclient/tests/functional/compute/v2/__init__.py
diff --git a/functional/tests/compute/v2/test_agent.py b/openstackclient/tests/functional/compute/v2/test_agent.py
index d432768d..7115db1f 100644
--- a/functional/tests/compute/v2/test_agent.py
+++ b/openstackclient/tests/functional/compute/v2/test_agent.py
@@ -12,10 +12,10 @@
import hashlib
-from functional.common import test
+from openstackclient.tests.functional import base
-class ComputeAgentTests(test.TestCase):
+class ComputeAgentTests(base.TestCase):
"""Functional tests for compute agent."""
ID = None
diff --git a/functional/tests/compute/v2/test_aggregate.py b/openstackclient/tests/functional/compute/v2/test_aggregate.py
index adb14e52..2bc88e7b 100644
--- a/functional/tests/compute/v2/test_aggregate.py
+++ b/openstackclient/tests/functional/compute/v2/test_aggregate.py
@@ -12,10 +12,10 @@
import uuid
-from functional.common import test
+from openstackclient.tests.functional import base
-class AggregateTests(test.TestCase):
+class AggregateTests(base.TestCase):
"""Functional tests for aggregate."""
NAME = uuid.uuid4().hex
diff --git a/functional/tests/compute/v2/test_flavor.py b/openstackclient/tests/functional/compute/v2/test_flavor.py
index ef0d2fe3..794a6cc3 100644
--- a/functional/tests/compute/v2/test_flavor.py
+++ b/openstackclient/tests/functional/compute/v2/test_flavor.py
@@ -12,10 +12,10 @@
import uuid
-from functional.common import test
+from openstackclient.tests.functional import base
-class FlavorTests(test.TestCase):
+class FlavorTests(base.TestCase):
"""Functional tests for flavor."""
NAME = uuid.uuid4().hex
diff --git a/functional/tests/compute/v2/test_keypair.py b/openstackclient/tests/functional/compute/v2/test_keypair.py
index 6bc5cdb7..01078c61 100644
--- a/functional/tests/compute/v2/test_keypair.py
+++ b/openstackclient/tests/functional/compute/v2/test_keypair.py
@@ -12,13 +12,13 @@
import tempfile
-from functional.common import test
+from openstackclient.tests.functional import base
from tempest.lib.common.utils import data_utils
from tempest.lib import exceptions
-class KeypairBase(test.TestCase):
+class KeypairBase(base.TestCase):
"""Methods for functional tests."""
def keypair_create(self, name=data_utils.rand_uuid()):
diff --git a/functional/tests/compute/v2/test_server.py b/openstackclient/tests/functional/compute/v2/test_server.py
index a9d0e9c1..6eedf408 100644
--- a/functional/tests/compute/v2/test_server.py
+++ b/openstackclient/tests/functional/compute/v2/test_server.py
@@ -14,11 +14,11 @@ import time
from tempest.lib.common.utils import data_utils
-from functional.common import test
+from openstackclient.tests.functional import base
from tempest.lib import exceptions
-class ServerTests(test.TestCase):
+class ServerTests(base.TestCase):
"""Functional tests for openstack server commands."""
@classmethod
diff --git a/functional/tests/compute/v2/test_server_group.py b/openstackclient/tests/functional/compute/v2/test_server_group.py
index b9126052..3f0a24e5 100644
--- a/functional/tests/compute/v2/test_server_group.py
+++ b/openstackclient/tests/functional/compute/v2/test_server_group.py
@@ -12,10 +12,10 @@
import uuid
-from functional.common import test
+from openstackclient.tests.functional import base
-class ServerGroupTests(test.TestCase):
+class ServerGroupTests(base.TestCase):
"""Functional tests for servergroup."""
NAME = uuid.uuid4().hex
diff --git a/functional/tests/compute/__init__.py b/openstackclient/tests/functional/examples/__init__.py
index e69de29b..e69de29b 100644
--- a/functional/tests/compute/__init__.py
+++ b/openstackclient/tests/functional/examples/__init__.py
diff --git a/functional/tests/examples/test_examples.py b/openstackclient/tests/functional/examples/test_examples.py
index 6e0e5867..031f036a 100644
--- a/functional/tests/examples/test_examples.py
+++ b/openstackclient/tests/functional/examples/test_examples.py
@@ -10,19 +10,19 @@
# License for the specific language governing permissions and limitations
# under the License.
-from functional.common import test
+from openstackclient.tests.functional import base
-class ExampleTests(test.TestCase):
+class ExampleTests(base.TestCase):
"""Functional tests for running examples."""
def test_common(self):
# NOTE(stevemar): If an examples has a non-zero return
# code, then execute will raise an error by default.
- test.execute('python', test.EXAMPLE_DIR + '/common.py --debug')
+ base.execute('python', base.EXAMPLE_DIR + '/common.py --debug')
def test_object_api(self):
- test.execute('python', test.EXAMPLE_DIR + '/object_api.py --debug')
+ base.execute('python', base.EXAMPLE_DIR + '/object_api.py --debug')
def test_osc_lib(self):
- test.execute('python', test.EXAMPLE_DIR + '/osc-lib.py --debug')
+ base.execute('python', base.EXAMPLE_DIR + '/osc-lib.py --debug')
diff --git a/functional/tests/compute/v2/__init__.py b/openstackclient/tests/functional/identity/__init__.py
index e69de29b..e69de29b 100644
--- a/functional/tests/compute/v2/__init__.py
+++ b/openstackclient/tests/functional/identity/__init__.py
diff --git a/functional/tests/examples/__init__.py b/openstackclient/tests/functional/identity/v2/__init__.py
index e69de29b..e69de29b 100644
--- a/functional/tests/examples/__init__.py
+++ b/openstackclient/tests/functional/identity/v2/__init__.py
diff --git a/functional/tests/identity/v2/common.py b/openstackclient/tests/functional/identity/v2/common.py
index ca061a4d..b390c5bc 100644
--- a/functional/tests/identity/v2/common.py
+++ b/openstackclient/tests/functional/identity/v2/common.py
@@ -14,12 +14,12 @@ import os
from tempest.lib.common.utils import data_utils
-from functional.common import test
+from openstackclient.tests.functional import base
BASIC_LIST_HEADERS = ['ID', 'Name']
-class IdentityTests(test.TestCase):
+class IdentityTests(base.TestCase):
"""Functional tests for Identity commands. """
USER_FIELDS = ['email', 'enabled', 'id', 'name', 'project_id',
diff --git a/functional/tests/identity/v2/test_catalog.py b/openstackclient/tests/functional/identity/v2/test_catalog.py
index b6291e05..f403fbfc 100644
--- a/functional/tests/identity/v2/test_catalog.py
+++ b/openstackclient/tests/functional/identity/v2/test_catalog.py
@@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
-from functional.tests.identity.v2 import common
+from openstackclient.tests.functional.identity.v2 import common
class CatalogTests(common.IdentityTests):
diff --git a/functional/tests/identity/v2/test_ec2_credentials.py b/openstackclient/tests/functional/identity/v2/test_ec2_credentials.py
index 7a8ee35d..43dff91f 100644
--- a/functional/tests/identity/v2/test_ec2_credentials.py
+++ b/openstackclient/tests/functional/identity/v2/test_ec2_credentials.py
@@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
-from functional.tests.identity.v2 import common
+from openstackclient.tests.functional.identity.v2 import common
class EC2CredentialsTests(common.IdentityTests):
diff --git a/functional/tests/identity/v2/test_endpoint.py b/openstackclient/tests/functional/identity/v2/test_endpoint.py
index 34888c0b..9df5ca8a 100644
--- a/functional/tests/identity/v2/test_endpoint.py
+++ b/openstackclient/tests/functional/identity/v2/test_endpoint.py
@@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
-from functional.tests.identity.v2 import common
+from openstackclient.tests.functional.identity.v2 import common
class EndpointTests(common.IdentityTests):
diff --git a/functional/tests/identity/v2/test_project.py b/openstackclient/tests/functional/identity/v2/test_project.py
index 7fb1a98d..b6222a1b 100644
--- a/functional/tests/identity/v2/test_project.py
+++ b/openstackclient/tests/functional/identity/v2/test_project.py
@@ -12,7 +12,7 @@
from tempest.lib.common.utils import data_utils
-from functional.tests.identity.v2 import common
+from openstackclient.tests.functional.identity.v2 import common
class ProjectTests(common.IdentityTests):
diff --git a/functional/tests/identity/v2/test_role.py b/openstackclient/tests/functional/identity/v2/test_role.py
index 0f8d5ed4..82e19aab 100644
--- a/functional/tests/identity/v2/test_role.py
+++ b/openstackclient/tests/functional/identity/v2/test_role.py
@@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
-from functional.tests.identity.v2 import common
+from openstackclient.tests.functional.identity.v2 import common
class RoleTests(common.IdentityTests):
diff --git a/functional/tests/identity/v2/test_service.py b/openstackclient/tests/functional/identity/v2/test_service.py
index 9dcb6bea..d0e03804 100644
--- a/functional/tests/identity/v2/test_service.py
+++ b/openstackclient/tests/functional/identity/v2/test_service.py
@@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
-from functional.tests.identity.v2 import common
+from openstackclient.tests.functional.identity.v2 import common
class ServiceTests(common.IdentityTests):
diff --git a/functional/tests/identity/v2/test_token.py b/openstackclient/tests/functional/identity/v2/test_token.py
index ca9b7d68..f8569744 100644
--- a/functional/tests/identity/v2/test_token.py
+++ b/openstackclient/tests/functional/identity/v2/test_token.py
@@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
-from functional.tests.identity.v2 import common
+from openstackclient.tests.functional.identity.v2 import common
class TokenTests(common.IdentityTests):
diff --git a/functional/tests/identity/v2/test_user.py b/openstackclient/tests/functional/identity/v2/test_user.py
index ef4defac..ac609b94 100644
--- a/functional/tests/identity/v2/test_user.py
+++ b/openstackclient/tests/functional/identity/v2/test_user.py
@@ -13,7 +13,7 @@
from tempest.lib.common.utils import data_utils
from tempest.lib import exceptions
-from functional.tests.identity.v2 import common
+from openstackclient.tests.functional.identity.v2 import common
class UserTests(common.IdentityTests):
diff --git a/functional/tests/identity/__init__.py b/openstackclient/tests/functional/identity/v3/__init__.py
index e69de29b..e69de29b 100644
--- a/functional/tests/identity/__init__.py
+++ b/openstackclient/tests/functional/identity/v3/__init__.py
diff --git a/functional/tests/identity/v3/common.py b/openstackclient/tests/functional/identity/v3/common.py
index 47019c5f..5dd42e70 100644
--- a/functional/tests/identity/v3/common.py
+++ b/openstackclient/tests/functional/identity/v3/common.py
@@ -14,13 +14,13 @@ import os
from tempest.lib.common.utils import data_utils
-from functional.common import test
+from openstackclient.tests.functional import base
BASIC_LIST_HEADERS = ['ID', 'Name']
-class IdentityTests(test.TestCase):
+class IdentityTests(base.TestCase):
"""Functional tests for Identity commands. """
DOMAIN_FIELDS = ['description', 'enabled', 'id', 'name', 'links']
diff --git a/functional/tests/identity/v3/test_catalog.py b/openstackclient/tests/functional/identity/v3/test_catalog.py
index e33876b0..c8361406 100644
--- a/functional/tests/identity/v3/test_catalog.py
+++ b/openstackclient/tests/functional/identity/v3/test_catalog.py
@@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
-from functional.tests.identity.v3 import common
+from openstackclient.tests.functional.identity.v3 import common
class CatalogTests(common.IdentityTests):
diff --git a/functional/tests/identity/v3/test_domain.py b/openstackclient/tests/functional/identity/v3/test_domain.py
index 3f514b58..d8946d1e 100644
--- a/functional/tests/identity/v3/test_domain.py
+++ b/openstackclient/tests/functional/identity/v3/test_domain.py
@@ -13,7 +13,7 @@
from tempest.lib.common.utils import data_utils
from tempest.lib import exceptions
-from functional.tests.identity.v3 import common
+from openstackclient.tests.functional.identity.v3 import common
class DomainTests(common.IdentityTests):
diff --git a/functional/tests/identity/v3/test_endpoint.py b/openstackclient/tests/functional/identity/v3/test_endpoint.py
index e0afab23..22dc1b65 100644
--- a/functional/tests/identity/v3/test_endpoint.py
+++ b/openstackclient/tests/functional/identity/v3/test_endpoint.py
@@ -12,7 +12,7 @@
from tempest.lib.common.utils import data_utils
-from functional.tests.identity.v3 import common
+from openstackclient.tests.functional.identity.v3 import common
class EndpointTests(common.IdentityTests):
diff --git a/functional/tests/identity/v3/test_group.py b/openstackclient/tests/functional/identity/v3/test_group.py
index 35075698..70491183 100644
--- a/functional/tests/identity/v3/test_group.py
+++ b/openstackclient/tests/functional/identity/v3/test_group.py
@@ -12,7 +12,7 @@
from tempest.lib.common.utils import data_utils
-from functional.tests.identity.v3 import common
+from openstackclient.tests.functional.identity.v3 import common
class GroupTests(common.IdentityTests):
diff --git a/functional/tests/identity/v3/test_idp.py b/openstackclient/tests/functional/identity/v3/test_idp.py
index bc9690f7..f9d8cb80 100644
--- a/functional/tests/identity/v3/test_idp.py
+++ b/openstackclient/tests/functional/identity/v3/test_idp.py
@@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
-from functional.tests.identity.v3 import common
+from openstackclient.tests.functional.identity.v3 import common
from tempest.lib.common.utils import data_utils
diff --git a/functional/tests/identity/v3/test_project.py b/openstackclient/tests/functional/identity/v3/test_project.py
index a27c58fb..77438841 100644
--- a/functional/tests/identity/v3/test_project.py
+++ b/openstackclient/tests/functional/identity/v3/test_project.py
@@ -12,7 +12,7 @@
from tempest.lib.common.utils import data_utils
-from functional.tests.identity.v3 import common
+from openstackclient.tests.functional.identity.v3 import common
class ProjectTests(common.IdentityTests):
diff --git a/functional/tests/identity/v3/test_region.py b/openstackclient/tests/functional/identity/v3/test_region.py
index 2ebc0e59..2a402bd1 100644
--- a/functional/tests/identity/v3/test_region.py
+++ b/openstackclient/tests/functional/identity/v3/test_region.py
@@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
-from functional.tests.identity.v3 import common
+from openstackclient.tests.functional.identity.v3 import common
class RegionTests(common.IdentityTests):
diff --git a/functional/tests/identity/v3/test_role.py b/openstackclient/tests/functional/identity/v3/test_role.py
index 60aaf3f4..ab8af9c0 100644
--- a/functional/tests/identity/v3/test_role.py
+++ b/openstackclient/tests/functional/identity/v3/test_role.py
@@ -12,7 +12,7 @@
from tempest.lib.common.utils import data_utils
-from functional.tests.identity.v3 import common
+from openstackclient.tests.functional.identity.v3 import common
class RoleTests(common.IdentityTests):
diff --git a/functional/tests/identity/v3/test_service.py b/openstackclient/tests/functional/identity/v3/test_service.py
index 79a63dc8..1ecda45a 100644
--- a/functional/tests/identity/v3/test_service.py
+++ b/openstackclient/tests/functional/identity/v3/test_service.py
@@ -12,7 +12,7 @@
from tempest.lib.common.utils import data_utils
-from functional.tests.identity.v3 import common
+from openstackclient.tests.functional.identity.v3 import common
class ServiceTests(common.IdentityTests):
diff --git a/functional/tests/identity/v3/test_service_provider.py b/openstackclient/tests/functional/identity/v3/test_service_provider.py
index 458c2ae6..e072bc93 100644
--- a/functional/tests/identity/v3/test_service_provider.py
+++ b/openstackclient/tests/functional/identity/v3/test_service_provider.py
@@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
-from functional.tests.identity.v3 import common
+from openstackclient.tests.functional.identity.v3 import common
from tempest.lib.common.utils import data_utils
diff --git a/functional/tests/identity/v3/test_token.py b/openstackclient/tests/functional/identity/v3/test_token.py
index d8d3f43d..62e90003 100644
--- a/functional/tests/identity/v3/test_token.py
+++ b/openstackclient/tests/functional/identity/v3/test_token.py
@@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
-from functional.tests.identity.v3 import common
+from openstackclient.tests.functional.identity.v3 import common
class TokenTests(common.IdentityTests):
diff --git a/functional/tests/identity/v3/test_user.py b/openstackclient/tests/functional/identity/v3/test_user.py
index f3657064..9e9bde96 100644
--- a/functional/tests/identity/v3/test_user.py
+++ b/openstackclient/tests/functional/identity/v3/test_user.py
@@ -12,7 +12,7 @@
from tempest.lib.common.utils import data_utils
-from functional.tests.identity.v3 import common
+from openstackclient.tests.functional.identity.v3 import common
class UserTests(common.IdentityTests):
diff --git a/functional/tests/identity/v2/__init__.py b/openstackclient/tests/functional/image/__init__.py
index e69de29b..e69de29b 100644
--- a/functional/tests/identity/v2/__init__.py
+++ b/openstackclient/tests/functional/image/__init__.py
diff --git a/functional/tests/identity/v3/__init__.py b/openstackclient/tests/functional/image/v1/__init__.py
index e69de29b..e69de29b 100644
--- a/functional/tests/identity/v3/__init__.py
+++ b/openstackclient/tests/functional/image/v1/__init__.py
diff --git a/functional/tests/image/v1/test_image.py b/openstackclient/tests/functional/image/v1/test_image.py
index c64c0d98..2a2b5734 100644
--- a/functional/tests/image/v1/test_image.py
+++ b/openstackclient/tests/functional/image/v1/test_image.py
@@ -13,10 +13,10 @@
import os
import uuid
-from functional.common import test
+from openstackclient.tests.functional import base
-class ImageTests(test.TestCase):
+class ImageTests(base.TestCase):
"""Functional tests for image. """
NAME = uuid.uuid4().hex
diff --git a/functional/tests/image/__init__.py b/openstackclient/tests/functional/image/v2/__init__.py
index e69de29b..e69de29b 100644
--- a/functional/tests/image/__init__.py
+++ b/openstackclient/tests/functional/image/v2/__init__.py
diff --git a/functional/tests/image/v2/test_image.py b/openstackclient/tests/functional/image/v2/test_image.py
index 809451bb..3f432b02 100644
--- a/functional/tests/image/v2/test_image.py
+++ b/openstackclient/tests/functional/image/v2/test_image.py
@@ -13,10 +13,10 @@
import os
import uuid
-from functional.common import test
+from openstackclient.tests.functional import base
-class ImageTests(test.TestCase):
+class ImageTests(base.TestCase):
"""Functional tests for image. """
NAME = uuid.uuid4().hex
diff --git a/functional/tests/image/v1/__init__.py b/openstackclient/tests/functional/network/__init__.py
index e69de29b..e69de29b 100644
--- a/functional/tests/image/v1/__init__.py
+++ b/openstackclient/tests/functional/network/__init__.py
diff --git a/functional/tests/image/v2/__init__.py b/openstackclient/tests/functional/network/v2/__init__.py
index e69de29b..e69de29b 100644
--- a/functional/tests/image/v2/__init__.py
+++ b/openstackclient/tests/functional/network/v2/__init__.py
diff --git a/functional/tests/network/v2/test_address_scope.py b/openstackclient/tests/functional/network/v2/test_address_scope.py
index 3beab233..ef4b5756 100644
--- a/functional/tests/network/v2/test_address_scope.py
+++ b/openstackclient/tests/functional/network/v2/test_address_scope.py
@@ -12,10 +12,10 @@
import uuid
-from functional.common import test
+from openstackclient.tests.functional import base
-class AddressScopeTests(test.TestCase):
+class AddressScopeTests(base.TestCase):
"""Functional tests for address scope. """
NAME = uuid.uuid4().hex
HEADERS = ['Name']
diff --git a/functional/tests/network/v2/test_floating_ip.py b/openstackclient/tests/functional/network/v2/test_floating_ip.py
index 7e7c63f4..f3a1971f 100644
--- a/functional/tests/network/v2/test_floating_ip.py
+++ b/openstackclient/tests/functional/network/v2/test_floating_ip.py
@@ -12,10 +12,10 @@
import uuid
-from functional.common import test
+from openstackclient.tests.functional import base
-class FloatingIpTests(test.TestCase):
+class FloatingIpTests(base.TestCase):
"""Functional tests for floating ip. """
SUBNET_NAME = uuid.uuid4().hex
NETWORK_NAME = uuid.uuid4().hex
diff --git a/functional/tests/network/v2/test_ip_availability.py b/openstackclient/tests/functional/network/v2/test_ip_availability.py
index e83010fd..b5c908f4 100644
--- a/functional/tests/network/v2/test_ip_availability.py
+++ b/openstackclient/tests/functional/network/v2/test_ip_availability.py
@@ -12,10 +12,10 @@
import uuid
-from functional.common import test
+from openstackclient.tests.functional import base
-class IPAvailabilityTests(test.TestCase):
+class IPAvailabilityTests(base.TestCase):
"""Functional tests for IP availability. """
NAME = uuid.uuid4().hex
NETWORK_NAME = uuid.uuid4().hex
diff --git a/functional/tests/network/v2/test_network.py b/openstackclient/tests/functional/network/v2/test_network.py
index f5c92faa..c77ff642 100644
--- a/functional/tests/network/v2/test_network.py
+++ b/openstackclient/tests/functional/network/v2/test_network.py
@@ -12,10 +12,10 @@
import uuid
-from functional.common import test
+from openstackclient.tests.functional import base
-class NetworkTests(test.TestCase):
+class NetworkTests(base.TestCase):
"""Functional tests for network. """
NAME = uuid.uuid4().hex
HEADERS = ['Name']
diff --git a/functional/tests/network/v2/test_network_agent.py b/openstackclient/tests/functional/network/v2/test_network_agent.py
index f574c50c..dd6112e7 100644
--- a/functional/tests/network/v2/test_network_agent.py
+++ b/openstackclient/tests/functional/network/v2/test_network_agent.py
@@ -10,10 +10,10 @@
# License for the specific language governing permissions and limitations
# under the License.
-from functional.common import test
+from openstackclient.tests.functional import base
-class NetworkAgentTests(test.TestCase):
+class NetworkAgentTests(base.TestCase):
"""Functional tests for network agent. """
IDs = None
HEADERS = ['ID']
diff --git a/functional/tests/network/v2/test_network_rbac.py b/openstackclient/tests/functional/network/v2/test_network_rbac.py
index 1dbc246b..6f9f05e7 100644
--- a/functional/tests/network/v2/test_network_rbac.py
+++ b/openstackclient/tests/functional/network/v2/test_network_rbac.py
@@ -12,10 +12,10 @@
import uuid
-from functional.common import test
+from openstackclient.tests.functional import base
-class NetworkRBACTests(test.TestCase):
+class NetworkRBACTests(base.TestCase):
"""Functional tests for network rbac. """
NET_NAME = uuid.uuid4().hex
PROJECT_NAME = uuid.uuid4().hex
diff --git a/functional/tests/network/v2/test_network_segment.py b/openstackclient/tests/functional/network/v2/test_network_segment.py
index 4609973c..f871e88e 100644
--- a/functional/tests/network/v2/test_network_segment.py
+++ b/openstackclient/tests/functional/network/v2/test_network_segment.py
@@ -13,12 +13,12 @@
import testtools
import uuid
-from functional.common import test
+from openstackclient.tests.functional import base
# NOTE(rtheis): Routed networks is still a WIP and not enabled by default.
@testtools.skip("bp/routed-networks")
-class NetworkSegmentTests(test.TestCase):
+class NetworkSegmentTests(base.TestCase):
"""Functional tests for network segment. """
NETWORK_NAME = uuid.uuid4().hex
PHYSICAL_NETWORK_NAME = uuid.uuid4().hex
diff --git a/functional/tests/network/v2/test_port.py b/openstackclient/tests/functional/network/v2/test_port.py
index a68019c4..decd9553 100644
--- a/functional/tests/network/v2/test_port.py
+++ b/openstackclient/tests/functional/network/v2/test_port.py
@@ -12,10 +12,10 @@
import uuid
-from functional.common import test
+from openstackclient.tests.functional import base
-class PortTests(test.TestCase):
+class PortTests(base.TestCase):
"""Functional tests for port. """
NAME = uuid.uuid4().hex
NETWORK_NAME = uuid.uuid4().hex
diff --git a/functional/tests/network/v2/test_router.py b/openstackclient/tests/functional/network/v2/test_router.py
index e536c64e..789c3825 100644
--- a/functional/tests/network/v2/test_router.py
+++ b/openstackclient/tests/functional/network/v2/test_router.py
@@ -12,10 +12,10 @@
import uuid
-from functional.common import test
+from openstackclient.tests.functional import base
-class RouterTests(test.TestCase):
+class RouterTests(base.TestCase):
"""Functional tests for router. """
NAME = uuid.uuid4().hex
HEADERS = ['Name']
diff --git a/functional/tests/network/v2/test_security_group.py b/openstackclient/tests/functional/network/v2/test_security_group.py
index 2a3b92a0..debd81df 100644
--- a/functional/tests/network/v2/test_security_group.py
+++ b/openstackclient/tests/functional/network/v2/test_security_group.py
@@ -12,10 +12,10 @@
import uuid
-from functional.common import test
+from openstackclient.tests.functional import base
-class SecurityGroupTests(test.TestCase):
+class SecurityGroupTests(base.TestCase):
"""Functional tests for security group. """
NAME = uuid.uuid4().hex
OTHER_NAME = uuid.uuid4().hex
diff --git a/functional/tests/network/v2/test_security_group_rule.py b/openstackclient/tests/functional/network/v2/test_security_group_rule.py
index 248d20b1..c91de1a5 100644
--- a/functional/tests/network/v2/test_security_group_rule.py
+++ b/openstackclient/tests/functional/network/v2/test_security_group_rule.py
@@ -12,10 +12,10 @@
import uuid
-from functional.common import test
+from openstackclient.tests.functional import base
-class SecurityGroupRuleTests(test.TestCase):
+class SecurityGroupRuleTests(base.TestCase):
"""Functional tests for security group rule. """
SECURITY_GROUP_NAME = uuid.uuid4().hex
SECURITY_GROUP_RULE_ID = None
diff --git a/functional/tests/network/v2/test_subnet.py b/openstackclient/tests/functional/network/v2/test_subnet.py
index 7fb48437..231671f3 100644
--- a/functional/tests/network/v2/test_subnet.py
+++ b/openstackclient/tests/functional/network/v2/test_subnet.py
@@ -12,10 +12,10 @@
import uuid
-from functional.common import test
+from openstackclient.tests.functional import base
-class SubnetTests(test.TestCase):
+class SubnetTests(base.TestCase):
"""Functional tests for subnet. """
NAME = uuid.uuid4().hex
NETWORK_NAME = uuid.uuid4().hex
diff --git a/functional/tests/network/v2/test_subnet_pool.py b/openstackclient/tests/functional/network/v2/test_subnet_pool.py
index 054188f7..e52f06fc 100644
--- a/functional/tests/network/v2/test_subnet_pool.py
+++ b/openstackclient/tests/functional/network/v2/test_subnet_pool.py
@@ -12,10 +12,10 @@
import uuid
-from functional.common import test
+from openstackclient.tests.functional import base
-class SubnetPoolTests(test.TestCase):
+class SubnetPoolTests(base.TestCase):
"""Functional tests for subnet pool. """
NAME = uuid.uuid4().hex
CREATE_POOL_PREFIX = '10.100.0.0/24'
diff --git a/functional/tests/network/__init__.py b/openstackclient/tests/functional/object/__init__.py
index e69de29b..e69de29b 100644
--- a/functional/tests/network/__init__.py
+++ b/openstackclient/tests/functional/object/__init__.py
diff --git a/functional/tests/network/v2/__init__.py b/openstackclient/tests/functional/object/v1/__init__.py
index e69de29b..e69de29b 100644
--- a/functional/tests/network/v2/__init__.py
+++ b/openstackclient/tests/functional/object/v1/__init__.py
diff --git a/functional/tests/object/v1/test_container.py b/openstackclient/tests/functional/object/v1/test_container.py
index 4f9e843b..af76efd9 100644
--- a/functional/tests/object/v1/test_container.py
+++ b/openstackclient/tests/functional/object/v1/test_container.py
@@ -12,10 +12,10 @@
import uuid
-from functional.common import test
+from openstackclient.tests.functional import base
-class ContainerTests(test.TestCase):
+class ContainerTests(base.TestCase):
"""Functional tests for object containers. """
NAME = uuid.uuid4().hex
diff --git a/functional/tests/object/v1/test_object.py b/openstackclient/tests/functional/object/v1/test_object.py
index 8ea16da7..776cf47c 100644
--- a/functional/tests/object/v1/test_object.py
+++ b/openstackclient/tests/functional/object/v1/test_object.py
@@ -14,14 +14,14 @@ import os
import tempfile
import uuid
-from functional.common import test
+from openstackclient.tests.functional import base
BASIC_LIST_HEADERS = ['Name']
CONTAINER_FIELDS = ['account', 'container', 'x-trans-id']
OBJECT_FIELDS = ['object', 'container', 'etag']
-class ObjectTests(test.TestCase):
+class ObjectTests(base.TestCase):
"""Functional tests for Object commands. """
CONTAINER_NAME = uuid.uuid4().hex
diff --git a/openstackclient/tests/functional/post_test_hook.sh b/openstackclient/tests/functional/post_test_hook.sh
new file mode 100755
index 00000000..e555470d
--- /dev/null
+++ b/openstackclient/tests/functional/post_test_hook.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+# This is a script that kicks off a series of functional tests against an
+# OpenStack cloud. It will attempt to create an instance if one is not
+# available. Do not run this script unless you know what you're doing.
+# For more information refer to:
+# http://docs.openstack.org/developer/python-openstackclient/
+
+function generate_testr_results {
+ if [ -f .testrepository/0 ]; then
+ sudo .tox/functional/bin/testr last --subunit > $WORKSPACE/testrepository.subunit
+ sudo mv $WORKSPACE/testrepository.subunit $BASE/logs/testrepository.subunit
+ sudo .tox/functional/bin/subunit2html $BASE/logs/testrepository.subunit $BASE/logs/testr_results.html
+ sudo gzip -9 $BASE/logs/testrepository.subunit
+ sudo gzip -9 $BASE/logs/testr_results.html
+ sudo chown jenkins:jenkins $BASE/logs/testrepository.subunit.gz $BASE/logs/testr_results.html.gz
+ sudo chmod a+r $BASE/logs/testrepository.subunit.gz $BASE/logs/testr_results.html.gz
+ fi
+}
+
+OPENSTACKCLIENT_DIR=$(cd $(dirname "$0") && pwd)
+sudo chown -R jenkins:stack $OPENSTACKCLIENT_DIR
+
+# Run tests
+echo "Running openstackclient functional test suite"
+set +e
+
+# Go to the openstackclient dir
+cd $OPENSTACKCLIENT_DIR
+
+# Source environment variables to kick things off
+source ~stack/devstack/openrc admin admin
+echo 'Running tests with:'
+env | grep OS
+
+# Preserve env for OS_ credentials
+sudo -E -H -u jenkins tox -efunctional
+EXIT_CODE=$?
+set -e
+
+# Collect and parse result
+generate_testr_results
+exit $EXIT_CODE
diff --git a/functional/tests/object/__init__.py b/openstackclient/tests/functional/volume/__init__.py
index e69de29b..e69de29b 100644
--- a/functional/tests/object/__init__.py
+++ b/openstackclient/tests/functional/volume/__init__.py
diff --git a/functional/tests/object/v1/__init__.py b/openstackclient/tests/functional/volume/v1/__init__.py
index e69de29b..e69de29b 100644
--- a/functional/tests/object/v1/__init__.py
+++ b/openstackclient/tests/functional/volume/v1/__init__.py
diff --git a/functional/tests/volume/v1/common.py b/openstackclient/tests/functional/volume/v1/common.py
index 7d35ed5e..a442850d 100644
--- a/functional/tests/volume/v1/common.py
+++ b/openstackclient/tests/functional/volume/v1/common.py
@@ -12,10 +12,10 @@
import os
-from functional.common import test
+from openstackclient.tests.functional import base
-class BaseVolumeTests(test.TestCase):
+class BaseVolumeTests(base.TestCase):
"""Base class for Volume functional tests. """
@classmethod
diff --git a/functional/tests/volume/v1/test_qos.py b/openstackclient/tests/functional/volume/v1/test_qos.py
index 5aed4bd0..770d5acb 100644
--- a/functional/tests/volume/v1/test_qos.py
+++ b/openstackclient/tests/functional/volume/v1/test_qos.py
@@ -12,7 +12,7 @@
import uuid
-from functional.tests.volume.v1 import common
+from openstackclient.tests.functional.volume.v1 import common
class QosTests(common.BaseVolumeTests):
diff --git a/functional/tests/volume/v1/test_volume.py b/openstackclient/tests/functional/volume/v1/test_volume.py
index 8275bf0a..6ac7f2bf 100644
--- a/functional/tests/volume/v1/test_volume.py
+++ b/openstackclient/tests/functional/volume/v1/test_volume.py
@@ -12,7 +12,7 @@
import uuid
-from functional.tests.volume.v1 import common
+from openstackclient.tests.functional.volume.v1 import common
class VolumeTests(common.BaseVolumeTests):
diff --git a/functional/tests/volume/v1/test_volume_type.py b/openstackclient/tests/functional/volume/v1/test_volume_type.py
index ed44f3c3..538545ab 100644
--- a/functional/tests/volume/v1/test_volume_type.py
+++ b/openstackclient/tests/functional/volume/v1/test_volume_type.py
@@ -13,7 +13,7 @@
import time
import uuid
-from functional.tests.volume.v1 import common
+from openstackclient.tests.functional.volume.v1 import common
class VolumeTypeTests(common.BaseVolumeTests):
diff --git a/functional/tests/volume/__init__.py b/openstackclient/tests/functional/volume/v2/__init__.py
index e69de29b..e69de29b 100644
--- a/functional/tests/volume/__init__.py
+++ b/openstackclient/tests/functional/volume/v2/__init__.py
diff --git a/functional/tests/volume/v2/common.py b/openstackclient/tests/functional/volume/v2/common.py
index 8652c2d1..e279a6f6 100644
--- a/functional/tests/volume/v2/common.py
+++ b/openstackclient/tests/functional/volume/v2/common.py
@@ -12,10 +12,10 @@
import os
-from functional.common import test
+from openstackclient.tests.functional import base
-class BaseVolumeTests(test.TestCase):
+class BaseVolumeTests(base.TestCase):
"""Base class for Volume functional tests. """
@classmethod
diff --git a/functional/tests/volume/v2/test_qos.py b/openstackclient/tests/functional/volume/v2/test_qos.py
index 5311b478..a54acbfd 100644
--- a/functional/tests/volume/v2/test_qos.py
+++ b/openstackclient/tests/functional/volume/v2/test_qos.py
@@ -12,7 +12,7 @@
import uuid
-from functional.tests.volume.v2 import common
+from openstackclient.tests.functional.volume.v2 import common
class QosTests(common.BaseVolumeTests):
diff --git a/functional/tests/volume/v2/test_snapshot.py b/openstackclient/tests/functional/volume/v2/test_snapshot.py
index 4f910830..4582b67d 100644
--- a/functional/tests/volume/v2/test_snapshot.py
+++ b/openstackclient/tests/functional/volume/v2/test_snapshot.py
@@ -13,7 +13,7 @@
import time
import uuid
-from functional.tests.volume.v2 import common
+from openstackclient.tests.functional.volume.v2 import common
class SnapshotTests(common.BaseVolumeTests):
diff --git a/functional/tests/volume/v2/test_volume.py b/openstackclient/tests/functional/volume/v2/test_volume.py
index 02324a1e..73273573 100644
--- a/functional/tests/volume/v2/test_volume.py
+++ b/openstackclient/tests/functional/volume/v2/test_volume.py
@@ -13,7 +13,7 @@
import time
import uuid
-from functional.tests.volume.v2 import common
+from openstackclient.tests.functional.volume.v2 import common
class VolumeTests(common.BaseVolumeTests):
diff --git a/functional/tests/volume/v2/test_volume_type.py b/openstackclient/tests/functional/volume/v2/test_volume_type.py
index 02f790ec..b62cbb39 100644
--- a/functional/tests/volume/v2/test_volume_type.py
+++ b/openstackclient/tests/functional/volume/v2/test_volume_type.py
@@ -13,7 +13,7 @@
import time
import uuid
-from functional.tests.volume.v2 import common
+from openstackclient.tests.functional.volume.v2 import common
class VolumeTypeTests(common.BaseVolumeTests):
diff --git a/tox.ini b/tox.ini
index 9eb0a1a0..af7120e1 100644
--- a/tox.ini
+++ b/tox.ini
@@ -51,7 +51,7 @@ commands =
bandit -r openstackclient -x tests -s B105,B106,B107,B401,B404,B603,B606,B607,B110,B605,B101
[testenv:functional]
-setenv = OS_TEST_PATH=./functional/tests
+setenv = OS_TEST_PATH=./openstackclient/tests/functional
passenv = OS_*
[testenv:venv]