diff --git a/.zuul.yaml b/.zuul.yaml
index b681f20..1b3e34e 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -10,7 +10,6 @@
       - openstack/ceilometer
       - openstack/panko
       - openstack/telemetry-tempest-plugin
-      - openstack/heat-tempest-plugin
       - openstack/heat
       # following are required when DEVSTACK_GATE_HEAT, which this
       # job turns on
diff --git a/playbooks/legacy/telemetry-dsvm-integration-tempest-plugin/post_test_hook.sh b/playbooks/legacy/telemetry-dsvm-integration-tempest-plugin/post_test_hook.sh
index a8a4801..624d62e 100755
--- a/playbooks/legacy/telemetry-dsvm-integration-tempest-plugin/post_test_hook.sh
+++ b/playbooks/legacy/telemetry-dsvm-integration-tempest-plugin/post_test_hook.sh
@@ -43,8 +43,6 @@
     openstack stack show integration_test
     echo "* Alarm list:"
     aodh alarm list
-    echo "* Event list:"
-    ceilometer event-list -q 'event_type=string::compute.instance.create.end'
     echo "* Nova instance list:"
     openstack server list --all-projects
 
@@ -64,6 +62,16 @@
     echo "* Unprocessed measures:"
     for key in $(redis-cli --scan --pattern 'incoming*'); do echo -n "$key length = " && redis-cli llen $key; done
 
+    echo "* locale:"
+    locale
+    echo
+    echo "* tempest locale:"
+    sudo -H -u tempest locale
+    echo
+    echo "* tempest tox locale:"
+    sudo -H -u tempest tox -evenv-tempest -- locale
+    echo
+
     set -e
     set -x
 }
@@ -83,14 +91,14 @@
 sudo chown -R tempest:stack $BASE/new/tempest
 sudo chown -R tempest:stack $BASE/data/tempest
 cd $BASE/new/tempest
-sudo -H -u tempest tox -evenv-tempest -- pip install /opt/stack/new/heat-tempest-plugin /opt/stack/new/telemetry-tempest-plugin
+sudo -H -u tempest tox -evenv-tempest -- pip install /opt/stack/new/telemetry-tempest-plugin
 echo "Checking installed Tempest plugins:"
 sudo -H -u tempest tox -evenv-tempest -- tempest list-plugins
 set +e
 sudo -H -u tempest OS_TEST_TIMEOUT=$TEMPEST_OS_TEST_TIMEOUT tox -evenv-tempest -- tempest run -r telemetry_tempest_plugin --concurrency=$TEMPEST_CONCURRENCY
 EXIT_CODE=$?
 set -e
-export_subunit_data "all-plugin"
+export_subunit_data "venv-tempest"
 generate_reports_and_maybe_exit $EXIT_CODE
 
 exit $EXIT_CODE
diff --git a/playbooks/legacy/telemetry-dsvm-integration-tempest-plugin/run.yaml b/playbooks/legacy/telemetry-dsvm-integration-tempest-plugin/run.yaml
index 27d919f..07a50d8 100644
--- a/playbooks/legacy/telemetry-dsvm-integration-tempest-plugin/run.yaml
+++ b/playbooks/legacy/telemetry-dsvm-integration-tempest-plugin/run.yaml
@@ -35,7 +35,7 @@
           export DEVSTACK_GATE_EXERCISES=0
           export DEVSTACK_GATE_INSTALL_TESTONLY=1
           export DEVSTACK_GATE_TEMPEST_NOTESTS=1
-          export PROJECTS="openstack/ceilometer openstack/aodh openstack/panko openstack/telemetry-tempest-plugin openstack/heat openstack/heat-tempest-plugin"
+          export PROJECTS="openstack/ceilometer openstack/aodh openstack/panko openstack/telemetry-tempest-plugin openstack/heat"
           export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin panko git://git.openstack.org/openstack/panko"
           export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ceilometer git://git.openstack.org/openstack/ceilometer"
           export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin aodh git://git.openstack.org/openstack/aodh"
diff --git a/telemetry_tempest_plugin/gnocchi/__init__.py b/telemetry_tempest_plugin/gnocchi/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/telemetry_tempest_plugin/gnocchi/__init__.py
+++ /dev/null
diff --git a/telemetry_tempest_plugin/gnocchi/functional_live/__init__.py b/telemetry_tempest_plugin/gnocchi/functional_live/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/telemetry_tempest_plugin/gnocchi/functional_live/__init__.py
+++ /dev/null
diff --git a/telemetry_tempest_plugin/gnocchi/scenario/__init__.py b/telemetry_tempest_plugin/gnocchi/scenario/__init__.py
deleted file mode 100644
index 32dc694..0000000
--- a/telemetry_tempest_plugin/gnocchi/scenario/__init__.py
+++ /dev/null
@@ -1,111 +0,0 @@
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-from __future__ import absolute_import
-
-import os
-import unittest
-
-from gabbi import runner
-from gabbi import suitemaker
-from gabbi import utils
-import six.moves.urllib.parse as urlparse
-from tempest import config
-import tempest.test
-
-CONF = config.CONF
-
-TEST_DIR = os.path.join(os.path.dirname(__file__), '..',
-                        'functional_live', 'gabbits')
-
-
-class GnocchiGabbiTest(tempest.test.BaseTestCase):
-    credentials = ['admin']
-
-    TIMEOUT_SCALING_FACTOR = 5
-
-    @classmethod
-    def skip_checks(cls):
-        super(GnocchiGabbiTest, cls).skip_checks()
-        if not CONF.service_available.gnocchi:
-            raise cls.skipException("Gnocchi support is required")
-
-    def _do_test(self, filename):
-        token = self.os_admin.auth_provider.get_token()
-        url = self.os_admin.auth_provider.base_url(
-            {'service': CONF.metric.catalog_type,
-             'endpoint_type': CONF.metric.endpoint_type,
-             'region': CONF.identity.region})
-
-        parsed_url = urlparse.urlsplit(url)
-        prefix = parsed_url.path.rstrip('/')  # turn it into a prefix
-        if parsed_url.scheme == 'https':
-            port = 443
-            require_ssl = True
-        else:
-            port = 80
-            require_ssl = False
-        host = parsed_url.hostname
-        if parsed_url.port:
-            port = parsed_url.port
-
-        os.environ["GNOCCHI_SERVICE_TOKEN"] = token
-        os.environ["GNOCCHI_AUTHORIZATION"] = "not used"
-
-        with open(os.path.join(TEST_DIR, filename)) as f:
-            suite_dict = utils.load_yaml(f)
-            suite_dict.setdefault('defaults', {})['ssl'] = require_ssl
-            test_suite = suitemaker.test_suite_from_dict(
-                loader=unittest.defaultTestLoader,
-                test_base_name="gabbi",
-                suite_dict=suite_dict,
-                test_directory=TEST_DIR,
-                host=host, port=port,
-                fixture_module=None,
-                intercept=None,
-                prefix=prefix,
-                handlers=runner.initialize_handlers([]),
-                test_loader_name="tempest")
-
-            # NOTE(sileht): We hide stdout/stderr and reraise the failure
-            # manually, tempest will print it itself.
-            with open(os.devnull, 'w') as stream:
-                result = unittest.TextTestRunner(
-                    stream=stream, verbosity=0, failfast=True,
-                ).run(test_suite)
-
-            if not result.wasSuccessful():
-                failures = (result.errors + result.failures +
-                            result.unexpectedSuccesses)
-                if failures:
-                    test, bt = failures[0]
-                    name = test.test_data.get('name', test.id())
-                    msg = 'From test "%s" :\n%s' % (name, bt)
-                    self.fail(msg)
-
-            self.assertTrue(result.wasSuccessful())
-
-
-def test_maker(name, filename):
-    def test(self):
-        self._do_test(filename)
-        test.__name__ = name
-    return test
-
-
-# Create one scenario per yaml file
-for filename in os.listdir(TEST_DIR):
-    if not filename.endswith('.yaml'):
-        continue
-    name = "test_%s" % filename[:-5].lower().replace("-", "_")
-    setattr(GnocchiGabbiTest, name,
-            test_maker(name, filename))
diff --git a/telemetry_tempest_plugin/integration/__init__.py b/telemetry_tempest_plugin/integration/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/telemetry_tempest_plugin/integration/__init__.py
+++ /dev/null
diff --git a/telemetry_tempest_plugin/integration/gabbi/__init__.py b/telemetry_tempest_plugin/integration/gabbi/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/telemetry_tempest_plugin/integration/gabbi/__init__.py
+++ /dev/null
diff --git a/telemetry_tempest_plugin/integration/gabbi/test_gabbi_live.py b/telemetry_tempest_plugin/integration/gabbi/test_gabbi_live.py
deleted file mode 100644
index 925fbf3..0000000
--- a/telemetry_tempest_plugin/integration/gabbi/test_gabbi_live.py
+++ /dev/null
@@ -1,40 +0,0 @@
-#
-# Copyright 2015 Red Hat. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-"""A test module to exercise the Gnocchi API with gabbi."""
-
-import os
-
-from gabbi import driver
-
-
-TESTS_DIR = 'gabbits-live'
-
-
-def load_tests(loader, tests, pattern):
-    """Provide a TestSuite to the discovery process."""
-    NEEDED_ENV = ["AODH_SERVICE_URL", "GNOCCHI_SERVICE_URL",
-                  "HEAT_SERVICE_URL", "NOVA_SERVICE_URL", "PANKO_SERVICE_URL",
-                  "GLANCE_IMAGE_NAME", "ADMIN_TOKEN"]
-
-    for env_variable in NEEDED_ENV:
-        if not os.getenv(env_variable):
-            if os.getenv("GABBI_LIVE_FAIL_IF_NO_TEST"):
-                raise RuntimeError('%s is not set' % env_variable)
-            else:
-                return
-
-    test_dir = os.path.join(os.path.dirname(__file__), TESTS_DIR)
-    return driver.build_tests(test_dir, loader, host="localhost", port=8041)
diff --git a/telemetry_tempest_plugin/gnocchi/functional_live/gabbits/live.yaml b/telemetry_tempest_plugin/scenario/gnocchi_gabbits/live.yaml
similarity index 76%
rename from telemetry_tempest_plugin/gnocchi/functional_live/gabbits/live.yaml
rename to telemetry_tempest_plugin/scenario/gnocchi_gabbits/live.yaml
index d63cb09..6d15d61 100644
--- a/telemetry_tempest_plugin/gnocchi/functional_live/gabbits/live.yaml
+++ b/telemetry_tempest_plugin/scenario/gnocchi_gabbits/live.yaml
@@ -10,12 +10,12 @@
 
 tests:
     - name: check /
-      GET: /
+      GET: $ENVIRON['GNOCCHI_SERVICE_URL']/
 
     # Fail to create archive policy
     - name: wrong archive policy content type
       desc: attempt to create archive policy with invalid content-type
-      POST: /v1/archive_policy
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy
       request_headers:
           content-type: text/plain
       status: 415
@@ -24,14 +24,14 @@
 
     - name: wrong method
       desc: attempt to create archive policy with 'PUT' method
-      PUT: /v1/archive_policy
+      PUT: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy
       request_headers:
           content-type: application/json
       status: 405
 
     - name: invalid authZ
       desc: x-auth-token is invalid
-      POST: /v1/archive_policy
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy
       request_headers:
           content-type: application/json
           x-auth-token: 'hello'
@@ -44,7 +44,7 @@
 
     - name: bad archive policy body
       desc: archive policy contains invalid key 'cowsay'
-      POST: /v1/archive_policy
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy
       request_headers:
           content-type: application/json
       data:
@@ -55,7 +55,7 @@
 
     - name: missing definition
       desc: archive policy is missing 'definition' keyword
-      POST: /v1/archive_policy
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy
       request_headers:
           content-type: application/json
       data:
@@ -66,7 +66,7 @@
 
     - name: empty definition
       desc: empty definition for archive policy
-      POST: /v1/archive_policy
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy
       request_headers:
           content-type: application/json
       data:
@@ -78,7 +78,7 @@
 
     - name: wrong value definition
       desc: invalid type of 'definition' key
-      POST: /v1/archive_policy
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy
       request_headers:
           content-type: application/json
       data:
@@ -90,7 +90,7 @@
 
     - name: useless definition
       desc: invalid archive policy definition
-      POST: /v1/archive_policy
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy
       request_headers:
           content-type: application/json
       data:
@@ -107,7 +107,7 @@
 
     - name: create archive policy
       desc: create archve policy 'gabbilive' for live tests
-      POST: /v1/archive_policy
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy
       request_headers:
           content-type: application/json
       data:
@@ -134,7 +134,7 @@
       desc: retrieve archive policy 'gabbilive' and asster its values
       GET: $LOCATION
       response_headers:
-          content-type: /application/json/
+          content-type: $ENVIRON['GNOCCHI_SERVICE_URL']/application/json/
       response_json_paths:
           $.name: gabbilive
           $.back_window: 0
@@ -152,7 +152,7 @@
 
     - name: get wrong accept
       desc: invalid 'accept' header
-      GET: /v1/archive_policy/medium
+      GET: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy/medium
       request_headers:
           accept: text/plain
       status: 406
@@ -161,19 +161,19 @@
 
     - name: post single archive
       desc: unexpected 'POST' request to archive policy
-      POST: /v1/archive_policy/gabbilive
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy/gabbilive
       status: 405
 
     - name: put single archive
       desc: unexpected 'PUT' request to archive policy
-      PUT: /v1/archive_policy/gabbilive
+      PUT: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy/gabbilive
       status: 405
 
     # Duplicated archive policy names ain't allowed
 
     - name: create duplicate archive policy
       desc: create archve policy 'gabbilive' for live tests
-      POST: /v1/archive_policy
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy
       request_headers:
           content-type: application/json
       data:
@@ -188,7 +188,7 @@
     # Create a unicode named policy
 
     - name: post unicode policy name
-      POST: /v1/archive_policy
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy
       request_headers:
           content-type: application/json
       data:
@@ -208,21 +208,21 @@
           name: ✔éñ☃
 
     - name: delete unicode archive policy
-      DELETE: /v1/archive_policy/%E2%9C%94%C3%A9%C3%B1%E2%98%83
+      DELETE: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy/%E2%9C%94%C3%A9%C3%B1%E2%98%83
       status: 204
 
     # It really is gone
 
     - name: confirm delete
       desc: assert deleted unicode policy is not available
-      GET: /v1/archive_policy/%E2%9C%94%C3%A9%C3%B1%E2%98%83
+      GET: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy/%E2%9C%94%C3%A9%C3%B1%E2%98%83
       status: 404
 
     # Fail to delete one that does not exist
 
     - name: delete missing archive
       desc: delete non-existent archive policy
-      DELETE: /v1/archive_policy/grandiose
+      DELETE: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy/grandiose
       status: 404
       response_strings:
           - Archive policy grandiose does not exist
@@ -230,7 +230,7 @@
     # Attempt to create illogical policies
 
     - name: create illogical policy
-      POST: /v1/archive_policy
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy
       request_headers:
           content-type: application/json
       data:
@@ -244,7 +244,7 @@
           - timespan ≠ granularity × points
 
     - name: create identical granularities policy
-      POST: /v1/archive_policy
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy
       request_headers:
           content-type: application/json
       data:
@@ -260,7 +260,7 @@
 
     - name: policy invalid unit
       desc: invalid unit for archive policy 'timespan' key
-      POST: /v1/archive_policy
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy
       request_headers:
           content-type: application/json
       data:
@@ -275,7 +275,7 @@
     #
 
     - name: create archive policy rule1
-      POST: /v1/archive_policy_rule
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy_rule
       request_headers:
           content-type: application/json
       data:
@@ -289,7 +289,7 @@
         $.name: gabbilive_rule
 
     - name: create invalid archive policy rule
-      POST: /v1/archive_policy_rule
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy_rule
       request_headers:
           content-type: application/json
       data:
@@ -298,7 +298,7 @@
       status: 400
 
     - name: missing auth archive policy rule
-      POST: /v1/archive_policy_rule
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy_rule
       request_headers:
           content-type: application/json
           x-auth-token: 'hello'
@@ -310,7 +310,7 @@
       status: 401
 
     - name: wrong archive policy rule content type
-      POST: /v1/archive_policy_rule
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy_rule
       request_headers:
           content-type: text/plain
       status: 415
@@ -318,7 +318,7 @@
           - Unsupported Media Type
 
     - name: bad archive policy rule body
-      POST: /v1/archive_policy_rule
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy_rule
       request_headers:
           content-type: application/json
       data:
@@ -330,7 +330,7 @@
     # get an archive policy rules
 
     - name: get all archive policy rules
-      GET: /v1/archive_policy_rule
+      GET: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy_rule
       status: 200
       response_json_paths:
           $[\name][0].name: "gabbilive_rule"
@@ -338,12 +338,12 @@
           $[\name][0].archive_policy_name: "gabbilive"
 
     - name: get unknown archive policy rule
-      GET: /v1/archive_policy_rule/foo
+      GET: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy_rule/foo
       status: 404
 
 
     - name: get archive policy rule
-      GET: /v1/archive_policy_rule/gabbilive_rule
+      GET: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy_rule/gabbilive_rule
       status: 200
       response_json_paths:
           $.metric_pattern: "live.*"
@@ -352,7 +352,7 @@
 
     - name: delete archive policy in use
       desc: fails due to https://bugs.launchpad.net/gnocchi/+bug/1569781
-      DELETE: /v1/archive_policy/gabbilive
+      DELETE: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy/gabbilive
       status: 400
 
     #
@@ -361,11 +361,11 @@
 
 
     - name: get all metrics
-      GET: /v1/metric
+      GET: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/metric
       status: 200
 
     - name: create metric with name and rule
-      POST: /v1/metric
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/metric
       request_headers:
           content-type: application/json
       data:
@@ -376,17 +376,17 @@
           $.name: live.io.rate
 
     - name: assert metric is present in listing
-      GET: /v1/metric?id=$HISTORY['create metric with name and rule'].$RESPONSE['$.id']
+      GET: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/metric?id=$HISTORY['create metric with name and rule'].$RESPONSE['$.id']
       response_json_paths:
           $.`len`: 1
 
     - name: assert metric is the only one with this policy
-      GET: /v1/metric?archive_policy_name=gabbilive
+      GET: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/metric?archive_policy_name=gabbilive
       response_json_paths:
           $.`len`: 1
 
     - name: delete metric
-      DELETE: /v1/metric/$HISTORY['create metric with name and rule'].$RESPONSE['$.id']
+      DELETE: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/metric/$HISTORY['create metric with name and rule'].$RESPONSE['$.id']
       status: 204
 
     - name: assert metric is expunged
@@ -398,7 +398,7 @@
           $.`len`: 0
 
     - name: create metric with name and policy
-      POST: /v1/metric
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/metric
       request_headers:
           content-type: application/json
       data:
@@ -416,15 +416,15 @@
         $.archive_policy.name: gabbilive
 
     - name: delete the metric
-      DELETE: /v1/metric/$RESPONSE['$.id']
+      DELETE: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/metric/$RESPONSE['$.id']
       status: 204
 
     - name: ensure the metric is delete
-      GET: /v1/metric/$HISTORY['get valid metric id'].$RESPONSE['$.id']
+      GET: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/metric/$HISTORY['get valid metric id'].$RESPONSE['$.id']
       status: 404
 
     - name: create metric bad archive policy
-      POST: /v1/metric
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/metric
       request_headers:
           content-type: application/json
       data:
@@ -434,7 +434,7 @@
           - Archive policy 2e2675aa-105e-4664-a30d-c407e6a0ea7f does not exist
 
     - name: create metric bad content-type
-      POST: /v1/metric
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/metric
       request_headers:
           content-type: plain/text
       data: '{"archive_policy_name": "cookies"}'
@@ -446,11 +446,11 @@
     #
 
     - name: delete archive policy rule
-      DELETE: /v1/archive_policy_rule/gabbilive_rule
+      DELETE: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy_rule/gabbilive_rule
       status: 204
 
     - name: confirm delete archive policy rule
-      DELETE: /v1/archive_policy_rule/gabbilive_rule
+      DELETE: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy_rule/gabbilive_rule
       status: 404
 
 
@@ -459,24 +459,24 @@
     #
 
     - name: root of resource
-      GET: /v1/resource
+      GET: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource
       response_json_paths:
           $.generic: $SCHEME://$NETLOC/v1/resource/generic
 
     - name: typo of resource
-      GET: /v1/resoue
+      GET: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resoue
       status: 404
 
     - name: typo of resource extra
-      GET: /v1/resource/foobar
+      GET: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource/foobar
       status: 404
 
     - name: generic resource
-      GET: /v1/resource/generic
+      GET: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource/generic
       status: 200
 
     - name: post resource type
-      POST: /v1/resource_type
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource_type
       request_headers:
           content-type: application/json
       data:
@@ -492,7 +492,7 @@
           location: $SCHEME://$NETLOC/v1/resource_type/myresource
 
     - name: add an attribute
-      PATCH: /v1/resource_type/myresource
+      PATCH: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource_type/myresource
       request_headers:
           content-type: application/json-patch+json
       data:
@@ -506,7 +506,7 @@
           $.attributes.[*].`len`: 2
 
     - name: remove an attribute
-      PATCH: /v1/resource_type/myresource
+      PATCH: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource_type/myresource
       request_headers:
           content-type: application/json-patch+json
       data:
@@ -522,7 +522,7 @@
       desc: Expect 406 on bad accept type
       request_headers:
           accept: text/plain
-      GET: /v1/resource/myresource
+      GET: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource/myresource
       status: 406
       response_strings:
           - 406 Not Acceptable
@@ -531,11 +531,11 @@
       desc: failover accept media type appropriately
       request_headers:
           accept: text/plain, application/json; q=0.8
-      GET: /v1/resource/myresource
+      GET: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource/myresource
       status: 200
 
     - name: post myresource resource
-      POST: /v1/resource/myresource
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource/myresource
       request_headers:
           content-type: application/json
       data:
@@ -563,14 +563,14 @@
           $.display_name: "myvm"
 
     - name: get vcpus metric
-      GET: /v1/metric/$HISTORY['get myresource resource'].$RESPONSE['$.metrics.vcpus']
+      GET: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/metric/$HISTORY['get myresource resource'].$RESPONSE['$.metrics.vcpus']
       status: 200
       response_json_paths:
           $.name: vcpus
           $.resource.id: 2ae35573-7f9f-4bb1-aae8-dad8dff5706e
 
     - name: search for myresource resource via user_id
-      POST: /v1/search/resource/myresource
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/search/resource/myresource
       request_headers:
         content-type: application/json
       data:
@@ -583,7 +583,7 @@
         $..display_name: myvm
 
     - name: search for myresource resource via user_id and 'generic' type
-      POST: /v1/search/resource/generic
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/search/resource/generic
       request_headers:
         content-type: application/json
       data:
@@ -593,7 +593,7 @@
           - '"user_id": "126204ef-989a-46fd-999b-ee45c8108f31"'
 
     - name: search for myresource resource via user_id and project_id
-      POST: /v1/search/resource/generic
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/search/resource/generic
       request_headers:
         content-type: application/json
       data:
@@ -606,7 +606,7 @@
           - '"id": "2ae35573-7f9f-4bb1-aae8-dad8dff5706e"'
 
     - name: patch myresource resource
-      PATCH: /v1/resource/myresource/2ae35573-7f9f-4bb1-aae8-dad8dff5706e
+      PATCH: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource/myresource/2ae35573-7f9f-4bb1-aae8-dad8dff5706e
       request_headers:
           content-type: application/json
       data:
@@ -616,7 +616,7 @@
           display_name: myvm2
 
     - name: post some measures to the metric on myresource
-      POST: /v1/resource/myresource/2ae35573-7f9f-4bb1-aae8-dad8dff5706e/metric/vcpus/measures
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource/myresource/2ae35573-7f9f-4bb1-aae8-dad8dff5706e/metric/vcpus/measures
       request_headers:
           content-type: application/json
       data:
@@ -627,7 +627,7 @@
       status: 202
 
     - name: get myresource measures with poll
-      GET: /v1/resource/myresource/2ae35573-7f9f-4bb1-aae8-dad8dff5706e/metric/vcpus/measures
+      GET: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource/myresource/2ae35573-7f9f-4bb1-aae8-dad8dff5706e/metric/vcpus/measures
       # wait up to 60 seconds before policy is deleted
       poll:
           count: 60
@@ -637,7 +637,7 @@
           $[1][2]: 2
 
     - name: post some more measures to the metric on myresource
-      POST: /v1/resource/myresource/2ae35573-7f9f-4bb1-aae8-dad8dff5706e/metric/vcpus/measures
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource/myresource/2ae35573-7f9f-4bb1-aae8-dad8dff5706e/metric/vcpus/measures
       request_headers:
           content-type: application/json
       data:
@@ -648,7 +648,7 @@
       status: 202
 
     - name: get myresource measures with refresh
-      GET: /v1/resource/myresource/2ae35573-7f9f-4bb1-aae8-dad8dff5706e/metric/vcpus/measures?refresh=true
+      GET: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource/myresource/2ae35573-7f9f-4bb1-aae8-dad8dff5706e/metric/vcpus/measures?refresh=true
       response_json_paths:
           $[0][2]: 2
           $[1][2]: 4
@@ -662,15 +662,15 @@
     #
 
     - name: typo of search
-      POST: /v1/search/notexists
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/search/notexists
       status: 404
 
     - name: typo of search in resource
-      POST: /v1/search/resource/foobar
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/search/resource/foobar
       status: 404
 
     - name: search with invalid uuid
-      POST: /v1/search/resource/generic
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/search/resource/generic
       request_headers:
         content-type: application/json
       data:
@@ -681,7 +681,7 @@
           $.`len`: 0
 
     - name: assert vcpus metric exists in listing
-      GET: /v1/metric?id=$HISTORY['get myresource resource'].$RESPONSE['$.metrics.vcpus']
+      GET: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/metric?id=$HISTORY['get myresource resource'].$RESPONSE['$.metrics.vcpus']
       poll:
           count: 360
           delay: 1
@@ -689,12 +689,12 @@
           $.`len`: 1
 
     - name: delete myresource resource
-      DELETE: /v1/resource/myresource/2ae35573-7f9f-4bb1-aae8-dad8dff5706e
+      DELETE: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource/myresource/2ae35573-7f9f-4bb1-aae8-dad8dff5706e
       status: 204
 
       # assert resource is really deleted
     - name: assert resource resource is deleted
-      GET: /v1/resource/myresource/2ae35573-7f9f-4bb1-aae8-dad8dff5706e
+      GET: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource/myresource/2ae35573-7f9f-4bb1-aae8-dad8dff5706e
       status: 404
 
     - name: assert vcpus metric is really expurged
@@ -706,7 +706,7 @@
           $.`len`: 0
 
     - name: post myresource resource no data
-      POST: /v1/resource/myresource
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource/myresource
       request_headers:
           content-type: application/json
       status: 400
@@ -722,7 +722,7 @@
           $.`len`: 0
 
     - name: delete single archive policy cleanup
-      DELETE: /v1/archive_policy/gabbilive
+      DELETE: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy/gabbilive
       poll:
           count: 360
           delay: 1
@@ -731,9 +731,9 @@
     # It really is gone
 
     - name: delete our resource type
-      DELETE: /v1/resource_type/myresource
+      DELETE: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource_type/myresource
       status: 204
 
     - name: confirm delete of cleanup
-      GET: /v1/archive_policy/gabbilive
+      GET: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/archive_policy/gabbilive
       status: 404
diff --git a/telemetry_tempest_plugin/gnocchi/functional_live/gabbits/search-resource.yaml b/telemetry_tempest_plugin/scenario/gnocchi_gabbits/search-resource.yaml
similarity index 84%
rename from telemetry_tempest_plugin/gnocchi/functional_live/gabbits/search-resource.yaml
rename to telemetry_tempest_plugin/scenario/gnocchi_gabbits/search-resource.yaml
index fe25478..8febac6 100644
--- a/telemetry_tempest_plugin/gnocchi/functional_live/gabbits/search-resource.yaml
+++ b/telemetry_tempest_plugin/scenario/gnocchi_gabbits/search-resource.yaml
@@ -27,7 +27,7 @@
     #
 
     - name: create new resource type 'instance-like'
-      POST: /v1/resource_type
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource_type
       status: 201
       request_headers:
           content-type: application/json
@@ -51,7 +51,7 @@
                   required: False
 
     - name: create new resource type 'image-like'
-      POST: /v1/resource_type
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource_type
       status: 201
       request_headers:
           content-type: application/json
@@ -72,7 +72,7 @@
     # Setup test resources
     #
     - name: helper. create instance-like resource-1
-      POST: /v1/resource/instance-like
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource/instance-like
       request_headers:
           content-type: application/json
       data:
@@ -86,7 +86,7 @@
       status: 201
 
     - name: helper. create instance-like resource-2
-      POST: /v1/resource/instance-like
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource/instance-like
       request_headers:
           content-type: application/json
       data:
@@ -100,7 +100,7 @@
       status: 201
 
     - name: helper. create instance-like resource-3
-      POST: /v1/resource/instance-like
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource/instance-like
       request_headers:
           content-type: application/json
       data:
@@ -114,7 +114,7 @@
       status: 201
 
     - name: helper. create image-like resource-1
-      POST: /v1/resource/image-like
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource/image-like
       request_headers:
           content-type: application/json
       data:
@@ -132,7 +132,7 @@
 
     - name: search for all resources with a specific user_id
       desc: search through all resource types
-      POST: /v1/search/resource/generic
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/search/resource/generic
       request_headers:
           content-type: application/json
       data:
@@ -149,7 +149,7 @@
 
     - name: search for all resources of instance-like type create by specific user_id
       desc: all instances created by a specified user
-      POST: /v1/search/resource/generic
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/search/resource/generic
       request_headers:
           content-type: application/json
       data:
@@ -174,7 +174,7 @@
 
     - name: search for all resources with a specific project_id
       desc: search for all resources in a specific project
-      POST: /v1/search/resource/generic
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/search/resource/generic
       request_headers:
           content-type: application/json
       data:
@@ -186,7 +186,7 @@
 
     - name: search for intances on a specific compute using "like" keyword
       desc: search for vms hosted on a specific compute node
-      POST: /v1/search/resource/instance-like
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/search/resource/instance-like
       request_headers:
           content-type: application/json
       data:
@@ -204,7 +204,7 @@
 
     - name: search for instances using complex search with "like" keyword and user_id
       desc: search for vms of specified user hosted on a specific compute node
-      POST: /v1/search/resource/instance-like
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/search/resource/instance-like
       request_headers:
           content-type: application/json
       data:
@@ -222,7 +222,7 @@
 
     - name: search for resources of instance-like or image-like type with specific user_id
       desc: search for all image-like or instance-like resources created by a specific user
-      POST: /v1/search/resource/generic
+      POST: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/search/resource/generic
       request_headers:
           content-type: application/json
       data:
@@ -250,26 +250,26 @@
     #
 
     - name: helper. delete instance-like resource-1
-      DELETE: /v1/resource/instance-like/a64ca14f-bc7c-45b0-aa85-42cd2179e1e2
+      DELETE: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource/instance-like/a64ca14f-bc7c-45b0-aa85-42cd2179e1e2
       status: 204
 
     - name: helper. delete instance-like resource-2
-      DELETE: /v1/resource/instance-like/7ccccfa0-92ce-4225-80ca-3ac9cb122d6a
+      DELETE: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource/instance-like/7ccccfa0-92ce-4225-80ca-3ac9cb122d6a
       status: 204
 
     - name: helper. delete instance-like resource-3
-      DELETE: /v1/resource/instance-like/c442a47c-eb33-46ce-9665-f3aa0bef54e7
+      DELETE: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource/instance-like/c442a47c-eb33-46ce-9665-f3aa0bef54e7
       status: 204
 
     - name: helper. delete image-like resource
-      DELETE: /v1/resource/image-like/7ab2f7ae-7af5-4469-bdc8-3c0f6dfab75d
+      DELETE: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource/image-like/7ab2f7ae-7af5-4469-bdc8-3c0f6dfab75d
       status: 204
 
     - name: helper. delete resource-type instance-like
-      DELETE: /v1/resource_type/instance-like
+      DELETE: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource_type/instance-like
       status: 204
 
     - name: helper. delete resource-type image-like
-      DELETE: /v1/resource_type/image-like
+      DELETE: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/resource_type/image-like
       status: 204
 
diff --git a/telemetry_tempest_plugin/integration/gabbi/gabbits-live/aodh-gnocchi-threshold-alarm.yaml b/telemetry_tempest_plugin/scenario/telemetry_integration_gabbits/aodh-gnocchi-threshold-alarm.yaml
similarity index 100%
rename from telemetry_tempest_plugin/integration/gabbi/gabbits-live/aodh-gnocchi-threshold-alarm.yaml
rename to telemetry_tempest_plugin/scenario/telemetry_integration_gabbits/aodh-gnocchi-threshold-alarm.yaml
diff --git a/telemetry_tempest_plugin/integration/gabbi/gabbits-live/autoscaling.yaml b/telemetry_tempest_plugin/scenario/telemetry_integration_gabbits/autoscaling.yaml
similarity index 100%
rename from telemetry_tempest_plugin/integration/gabbi/gabbits-live/autoscaling.yaml
rename to telemetry_tempest_plugin/scenario/telemetry_integration_gabbits/autoscaling.yaml
diff --git a/telemetry_tempest_plugin/integration/gabbi/gabbits-live/create_stack.json b/telemetry_tempest_plugin/scenario/telemetry_integration_gabbits/create_stack.json
similarity index 100%
rename from telemetry_tempest_plugin/integration/gabbi/gabbits-live/create_stack.json
rename to telemetry_tempest_plugin/scenario/telemetry_integration_gabbits/create_stack.json
diff --git a/telemetry_tempest_plugin/integration/gabbi/gabbits-live/update_stack.json b/telemetry_tempest_plugin/scenario/telemetry_integration_gabbits/update_stack.json
similarity index 100%
rename from telemetry_tempest_plugin/integration/gabbi/gabbits-live/update_stack.json
rename to telemetry_tempest_plugin/scenario/telemetry_integration_gabbits/update_stack.json
diff --git a/telemetry_tempest_plugin/scenario/test_gnocchi.py b/telemetry_tempest_plugin/scenario/test_gnocchi.py
new file mode 100644
index 0000000..e283d2f
--- /dev/null
+++ b/telemetry_tempest_plugin/scenario/test_gnocchi.py
@@ -0,0 +1,52 @@
+#    Licensed under the Apache License, Version 2.0 (the "License"); you may
+#    not use this file except in compliance with the License. You may obtain
+#    a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+#    License for the specific language governing permissions and limitations
+#    under the License.
+
+from __future__ import absolute_import
+
+import os
+
+from tempest import config
+import tempest.test
+
+from telemetry_tempest_plugin.scenario import utils
+
+CONF = config.CONF
+
+TEST_DIR = os.path.join(os.path.dirname(__file__), 'gnocchi_gabbits')
+
+
+class GnocchiGabbiTest(tempest.test.BaseTestCase):
+    credentials = ['admin']
+
+    TIMEOUT_SCALING_FACTOR = 5
+
+    @classmethod
+    def skip_checks(cls):
+        super(GnocchiGabbiTest, cls).skip_checks()
+        if not CONF.service_available.gnocchi:
+            raise cls.skipException("Gnocchi support is required")
+
+    def _prep_test(self, filename):
+        token = self.os_admin.auth_provider.get_token()
+        url = self.os_admin.auth_provider.base_url(
+            {'service': CONF.metric.catalog_type,
+             'endpoint_type': CONF.metric.endpoint_type,
+             'region': CONF.identity.region})
+
+        os.environ.update({
+            "GNOCCHI_SERVICE_URL": url,
+            "GNOCCHI_SERVICE_TOKEN": token,
+            "GNOCCHI_AUTHORIZATION": "not used",
+        })
+
+
+utils.generate_tests(GnocchiGabbiTest, TEST_DIR)
diff --git a/telemetry_tempest_plugin/scenario/test_telemetry_integration.py b/telemetry_tempest_plugin/scenario/test_telemetry_integration.py
index df527c0..22155dd 100644
--- a/telemetry_tempest_plugin/scenario/test_telemetry_integration.py
+++ b/telemetry_tempest_plugin/scenario/test_telemetry_integration.py
@@ -11,16 +11,14 @@
 #    under the License.
 
 import os
-import unittest
 
-from gabbi import runner
-from gabbi import suitemaker
-from gabbi import utils
 from tempest import config
 from tempest.scenario import manager
 
-TEST_DIR = os.path.join(os.path.dirname(__file__), '..',
-                        'integration', 'gabbi', 'gabbits-live')
+from telemetry_tempest_plugin.scenario import utils
+
+TEST_DIR = os.path.join(os.path.dirname(__file__),
+                        'telemetry_integration_gabbits')
 
 
 class TestTelemetryIntegration(manager.ScenarioTest):
@@ -75,7 +73,7 @@
                                 opt_section.catalog_type)
             return endpoints[0]['endpoints'][0][endpoint_type]
 
-    def _do_test(self, filename):
+    def _prep_test(self, filename):
         admin_auth = self.os_admin.auth_provider.get_auth()
         auth = self.os_primary.auth_provider.get_auth()
         networks = self.os_primary.networks_client.list_networks(
@@ -96,48 +94,5 @@
             "NEUTRON_NETWORK": networks[0].get('id'),
         })
 
-        with open(os.path.join(TEST_DIR, filename)) as f:
-            test_suite = suitemaker.test_suite_from_dict(
-                loader=unittest.defaultTestLoader,
-                test_base_name="gabbi",
-                suite_dict=utils.load_yaml(f),
-                test_directory=TEST_DIR,
-                host="example.com", port=None,
-                fixture_module=None,
-                intercept=None,
-                handlers=runner.initialize_handlers([]),
-                test_loader_name="tempest")
 
-            # NOTE(sileht): We hide stdout/stderr and reraise the failure
-            # manually, tempest will print it itself.
-            with open(os.devnull, 'w') as stream:
-                result = unittest.TextTestRunner(
-                    stream=stream, verbosity=0, failfast=True,
-                ).run(test_suite)
-
-            if not result.wasSuccessful():
-                failures = (result.errors + result.failures +
-                            result.unexpectedSuccesses)
-                if failures:
-                    test, bt = failures[0]
-                    name = test.test_data.get('name', test.id())
-                    msg = 'From test "%s" :\n%s' % (name, bt)
-                    self.fail(msg)
-
-            self.assertTrue(result.wasSuccessful())
-
-
-def test_maker(name, filename):
-    def test(self):
-        self._do_test(filename)
-        test.__name__ = name
-    return test
-
-
-# Create one scenario per yaml file
-for filename in os.listdir(TEST_DIR):
-    if not filename.endswith('.yaml'):
-        continue
-    name = "test_%s" % filename[:-5].lower().replace("-", "_")
-    setattr(TestTelemetryIntegration, name,
-            test_maker(name, filename))
+utils.generate_tests(TestTelemetryIntegration, TEST_DIR)
diff --git a/telemetry_tempest_plugin/scenario/utils.py b/telemetry_tempest_plugin/scenario/utils.py
new file mode 100644
index 0000000..90b4d6b
--- /dev/null
+++ b/telemetry_tempest_plugin/scenario/utils.py
@@ -0,0 +1,78 @@
+#    Licensed under the Apache License, Version 2.0 (the "License"); you may
+#    not use this file except in compliance with the License. You may obtain
+#    a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+#    License for the specific language governing permissions and limitations
+#    under the License.
+
+from __future__ import absolute_import
+
+import os
+import unittest
+
+from gabbi import runner
+from gabbi import suitemaker
+from gabbi import utils
+from oslo_log import log as logging
+
+LOG = logging.getLogger(__name__)
+
+
+def run_test(test_class_instance, test_dir, filename):
+    d = utils.load_yaml(yaml_file=os.path.join(test_dir, filename))
+    test_suite = suitemaker.test_suite_from_dict(
+        loader=unittest.defaultTestLoader,
+        test_base_name="gabbi",
+        suite_dict=d,
+        test_directory=test_dir,
+        host='example.com', port=None,
+        fixture_module=None,
+        intercept=None,
+        handlers=runner.initialize_handlers([]),
+        test_loader_name="tempest")
+
+    # NOTE(sileht): We hide stdout/stderr and reraise the failure
+    # manually, tempest will print it ittest_class.
+    with open(os.devnull, 'w') as stream:
+        result = unittest.TextTestRunner(
+            stream=stream, verbosity=0, failfast=True,
+        ).run(test_suite)
+
+    return
+
+    if not result.wasSuccessful():
+        failures = (result.errors + result.failures +
+                    result.unexpectedSuccesses)
+        if failures:
+            test, bt = failures[0]
+            name = test.test_data.get('name', test.id())
+            msg = 'From test "%s" :\n%s' % (name, bt)
+            test_class_instance.fail(msg)
+
+    test_class_instance.assertTrue(result.wasSuccessful())
+
+
+def test_maker(test_dir, filename, name):
+    def test(self):
+        self._prep_test(filename)
+        run_test(self, test_dir, filename)
+    test.__name__ = name
+    return test
+
+
+def generate_tests(test_class, test_dir):
+    # Create one scenario per yaml file
+    filenames = os.listdir(test_dir)
+    if not filenames:
+        raise RuntimeError("%s is empty" % test_dir)
+    for filename in filenames:
+        if not filename.endswith('.yaml'):
+            continue
+        name = "test_%s" % filename[:-5].lower().replace("-", "_")
+        setattr(test_class, name,
+                test_maker(test_dir, filename, name))
