Initial movement to new repo with cleanup

This commit is contained in:
rabi 2017-09-22 18:19:24 +05:30
parent 48c26a9a37
commit d2916d04e0
102 changed files with 319 additions and 99 deletions

5
.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
*.pyc
*.swp
*~
.tox
.testrepository

5
.gitreview Normal file
View File

@ -0,0 +1,5 @@
[gerrit]
host=review.openstack.org
port=29418
project=openstack/heat-tempest-plugin.git

12
.testr.conf Normal file
View File

@ -0,0 +1,12 @@
[DEFAULT]
test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \
OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \
OS_LOG_CAPTURE=${OS_LOG_CAPTURE:-1} \
OS_DEBUG=${OS_DEBUG:-1} \
OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-500} \
OS_TEST_LOCK_PATH=${OS_TEST_LOCK_PATH:-${TMPDIR:-'/tmp'}} \
${PYTHON:-python} -m subunit.run discover -t ${OS_TOP_LEVEL:-./} ${OS_TEST_PATH:-./heat_tempest_plugin} $LISTOPT $IDOPTION
test_id_option=--load-list $IDFILE
test_list_option=--list
group_regex=([^\.]*\.)*

28
README.rst Normal file
View File

@ -0,0 +1,28 @@
===================
Heat Tempest Plugin
===================
Tests can be run as a tempest plugin against any heat-enabled OpenStack
cloud, however defaults match running against a recent DevStack.
To run the tests against DevStack, do the following:
# Define DEST
export DEST=/opt/stack
# create test resources and write tempest config
$DEST/heat/heat_integrationtests/prepare_test_env.sh
$DEST/heat/heat_integrationtests/prepare_test_network.sh
# run tempest selecting only these tests
cd $DEST/tempest
tempest run --regex heat_tempest_plugin.tests
If custom configuration is required, edit the [orchestration_plugin] section of
$DEST/tempest/etc/tempest.conf

View File

@ -19,7 +19,7 @@ from oslo_log import log as logging
import paramiko
import six
from heat_integrationtests.common import exceptions
from heat_tempest_plugin.common import exceptions
LOG = logging.getLogger(__name__)

View File

@ -27,10 +27,10 @@ from six.moves import urllib
import testscenarios
import testtools
from heat_integrationtests.common import clients
from heat_integrationtests.common import config
from heat_integrationtests.common import exceptions
from heat_integrationtests.common import remote_client
from heat_tempest_plugin.common import exceptions
from heat_tempest_plugin.common import remote_client
from heat_tempest_plugin import config
from heat_tempest_plugin.services import clients
LOG = logging.getLogger(__name__)
_LOG_FORMAT = "%(levelname)8s [%(name)s] %(message)s"
@ -85,7 +85,7 @@ class HeatIntegrationTest(testscenarios.WithScenarios,
def setUp(self):
super(HeatIntegrationTest, self).setUp()
self.conf = config.CONF.heat_plugin
self.conf = config.CONF.orchestration_plugin
self.assertIsNotNone(self.conf.auth_url,
'No auth_url configured')

View File

@ -18,12 +18,12 @@ service_available_group = cfg.OptGroup(name="service_available",
title="Available OpenStack Services")
ServiceAvailableGroup = [
cfg.BoolOpt("heat_plugin",
cfg.BoolOpt("orchestration_plugin",
default=True,
help="Whether or not heat is expected to be available"),
]
heat_group = cfg.OptGroup(name="heat_plugin",
heat_group = cfg.OptGroup(name="orchestration_plugin",
title="Heat Service Options")
HeatGroup = [
@ -42,13 +42,13 @@ HeatGroup = [
secret=True),
cfg.StrOpt('project_name',
help="Project name to use for API requests.",
deprecated_opts=[cfg.DeprecatedOpt('tenant_name',
group='heat_plugin')]),
deprecated_opts=[cfg.DeprecatedOpt(
'tenant_name', group='orchestration_plugin')]),
cfg.StrOpt('admin_project_name',
default='admin',
help="Admin project name to use for admin API requests.",
deprecated_opts=[cfg.DeprecatedOpt('admin_tenant_name',
group='heat_plugin')]),
deprecated_opts=[cfg.DeprecatedOpt(
'admin_tenant_name', group='orchestration_plugin')]),
cfg.StrOpt('auth_url',
help="Full URI of the OpenStack Identity API (Keystone)."),
cfg.StrOpt('auth_version',
@ -101,7 +101,7 @@ HeatGroup = [
default='public',
help="Visible floating network name "),
cfg.StrOpt('boot_config_env',
default=('heat_integrationtests/scenario/templates'
default=('heat_tempest_plugin/tests/scenario/templates'
'/boot_config_none_env.yaml'),
help="Path to environment file which defines the "
"resource type Heat::InstallConfigAgent. Needs to "

View File

@ -0,0 +1,41 @@
# Copyright 2015
# 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.
import os
from tempest import config
from tempest.test_discover import plugins
from heat_tempest_plugin import config as heat_config
class HeatTempestPlugin(plugins.TempestPlugin):
def load_tests(self):
base_path = os.path.split(os.path.dirname(
os.path.abspath(__file__)))[0]
test_dir = "heat_tempest_plugin"
full_test_dir = os.path.join(base_path, test_dir)
return full_test_dir, base_path
def register_opts(self, conf):
config.register_opt_group(conf, heat_config.service_available_group,
heat_config.ServiceAvailableGroup)
config.register_opt_group(conf, heat_config.heat_group,
heat_config.HeatGroup)
heat_config.CONF = config.CONF
def get_opt_lists(self):
return [(heat_config.heat_group.name,
heat_config.HeatGroup)]

View File

@ -14,7 +14,6 @@ import os
from ceilometerclient import client as ceilometer_client
from cinderclient import client as cinder_client
from heat.common.i18n import _
from heatclient import client as heat_client
from keystoneauth1 import exceptions as kc_exceptions
from keystoneauth1.identity.generic import password
@ -73,11 +72,7 @@ class ClientManager(object):
self.auth_version = self.conf.auth_version
if not self.auth_version:
try:
self.auth_version = self.conf.auth_url.split('/v')[1]
except IndexError:
raise ValueError(_('Please specify version in auth_url or '
'auth_version in config.'))
self.auth_version = self.conf.auth_url.split('/v')[1]
self.insecure = self.conf.disable_ssl_certificate_validation
self.ca_file = self.conf.ca_file

View File

@ -18,9 +18,9 @@ import os
from gabbi import driver
from six.moves.urllib import parse as urlparse
from heat_integrationtests.common import clients
from heat_integrationtests.common import config
from heat_integrationtests.common import test
from heat_tempest_plugin.common import test
from heat_tempest_plugin import config
from heat_tempest_plugin.services import clients
TESTS_DIR = 'gabbits'
@ -29,7 +29,7 @@ def load_tests(loader, tests, pattern):
"""Provide a TestSuite to the discovery process."""
test_dir = os.path.join(os.path.dirname(__file__), TESTS_DIR)
conf = config.CONF.heat_plugin
conf = config.CONF.orchestration_plugin
if conf.auth_url is None:
# It's not configured, let's not load tests
return

View File

@ -12,7 +12,7 @@
from oslo_utils import reflection
from heat_integrationtests.common import test
from heat_tempest_plugin.common import test
class FunctionalTestsBase(test.HeatIntegrationTest):

View File

@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
# Simple stack
test_template = {

View File

@ -18,8 +18,8 @@ from oslo_log import log as logging
import six
from testtools import matchers
from heat_integrationtests.common import test
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.common import test
from heat_tempest_plugin.tests.functional import functional_base
LOG = logging.getLogger(__name__)

View File

@ -18,8 +18,8 @@ from six.moves.urllib import parse
from swiftclient import utils as swiftclient_utils
import yaml
from heat_integrationtests.common import test
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.common import test
from heat_tempest_plugin.tests.functional import functional_base
class AwsStackTest(functional_base.FunctionalTestsBase):

View File

@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
class CancelUpdateTest(functional_base.FunctionalTestsBase):

View File

@ -13,7 +13,7 @@
from heatclient import exc
import keystoneclient
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
class ServiceBasedExposureTest(functional_base.FunctionalTestsBase):

View File

@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
cfn_template = '''

View File

@ -14,8 +14,8 @@
import copy
import json
from heat_integrationtests.common import test
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.common import test
from heat_tempest_plugin.tests.functional import functional_base
test_template_one_resource = {
'heat_template_version': 'pike',

View File

@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
test_template = '''

View File

@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
test_template = '''

View File

@ -15,7 +15,7 @@
import copy
import yaml
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
test_template = '''

View File

@ -12,7 +12,7 @@
import yaml
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
class DefaultParametersTest(functional_base.FunctionalTestsBase):

View File

@ -12,7 +12,7 @@
import time
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
class DeleteInProgressTest(functional_base.FunctionalTestsBase):

View File

@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
class EncryptedParametersTest(functional_base.FunctionalTestsBase):

View File

@ -11,7 +11,7 @@
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
test_encryption_vol_type = {
'heat_template_version': '2015-04-30',

View File

@ -11,7 +11,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
TEMPLATE = '''

View File

@ -14,8 +14,8 @@ import uuid
from zaqarclient.queues.v2 import client as zaqarclient
from heat_integrationtests.common import test
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.common import test
from heat_tempest_plugin.tests.functional import functional_base
class ZaqarEventSinkTest(functional_base.FunctionalTestsBase):

View File

@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
class ExternalReferencesTest(functional_base.FunctionalTestsBase):

View File

@ -10,8 +10,8 @@
# License for the specific language governing permissions and limitations
# under the License.
from heat_integrationtests.common import test
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.common import test
from heat_tempest_plugin.tests.functional import functional_base
class HeatAutoscalingTest(functional_base.FunctionalTestsBase):

View File

@ -12,7 +12,7 @@
import yaml
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
class HooksTest(functional_base.FunctionalTestsBase):

View File

@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
from heatclient import exc as heat_exceptions

View File

@ -15,7 +15,7 @@ import json
from testtools import matchers
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
class InstanceGroupTest(functional_base.FunctionalTestsBase):

View File

@ -11,7 +11,7 @@
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
class LoadBalancerv2Test(functional_base.FunctionalTestsBase):

View File

@ -16,7 +16,7 @@
# where the get_attr calls are used. Nevertheless, it did sort-of work, and
# this test will help keep it that way.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
initial_template = '''

View File

@ -16,8 +16,8 @@ from oslo_messaging._drivers import common
from oslo_messaging import transport
import requests
from heat_integrationtests.common import test
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.common import test
from heat_tempest_plugin.tests.functional import functional_base
BASIC_NOTIFICATIONS = [
'orchestration.stack.create.start',

View File

@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
server_with_sub_fixed_ip_template = '''

View File

@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
class OSWaitCondition(functional_base.FunctionalTestsBase):

View File

@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
from heatclient import exc
import six

View File

@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
test_template_one_resource = {
'heat_template_version': '2013-05-23',

View File

@ -14,7 +14,7 @@ import time
from oslo_concurrency import processutils
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
class PurgeTest(functional_base.FunctionalTestsBase):

View File

@ -19,7 +19,7 @@ import eventlet
from oslo_concurrency import processutils
from six.moves import configparser
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
class ReloadOnSighupTest(functional_base.FunctionalTestsBase):

View File

@ -14,7 +14,7 @@
from heatclient import exc
import six
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
class RemoteStackTest(functional_base.FunctionalTestsBase):

View File

@ -12,7 +12,7 @@
import yaml
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
class ReplaceDeprecatedResourceTest(functional_base.FunctionalTestsBase):

View File

@ -11,7 +11,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
TEMPLATE_SIMPLE = '''

View File

@ -17,7 +17,7 @@ from heatclient import exc
import six
import yaml
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
class ResourceGroupTest(functional_base.FunctionalTestsBase):

View File

@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
test_template_depend = {

View File

@ -11,7 +11,7 @@
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
class StackSnapshotRestoreTest(functional_base.FunctionalTestsBase):

View File

@ -21,9 +21,9 @@ import yaml
from oslo_utils import timeutils
from heat_integrationtests.common import exceptions
from heat_integrationtests.common import test
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.common import exceptions
from heat_tempest_plugin.common import test
from heat_tempest_plugin.tests.functional import functional_base
class ParallelDeploymentsTest(functional_base.FunctionalTestsBase):

View File

@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
class SoftwareDeploymentGroupTest(functional_base.FunctionalTestsBase):

View File

@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
class StackEventsTest(functional_base.FunctionalTestsBase):

View File

@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
class StackOutputsTest(functional_base.FunctionalTestsBase):

View File

@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
class StackTagTest(functional_base.FunctionalTestsBase):

View File

@ -11,7 +11,7 @@
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
test_template = '''
heat_template_version: 2014-10-16

View File

@ -16,8 +16,8 @@ from heatclient import exc as heat_exceptions
import six
import yaml
from heat_integrationtests.common import test
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.common import test
from heat_tempest_plugin.tests.functional import functional_base
class TemplateResourceTest(functional_base.FunctionalTestsBase):

View File

@ -15,7 +15,7 @@ import six
from heatclient import exc
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
class StackTemplateValidateTest(functional_base.FunctionalTestsBase):

View File

@ -11,7 +11,7 @@
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
class TemplateAPITest(functional_base.FunctionalTestsBase):

View File

@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
template_subnet_old_network = """
heat_template_version: 2016-10-14

View File

@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
class StackUnicodeTemplateTest(functional_base.FunctionalTestsBase):

View File

@ -12,7 +12,7 @@
import time
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
test_template = {
'heat_template_version': '2013-05-23',

View File

@ -11,7 +11,7 @@
# under the License.
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
class StackValidationTest(functional_base.FunctionalTestsBase):

View File

@ -15,7 +15,7 @@ import json
from keystoneclient.v3 import client as keystoneclient
from zaqarclient.queues.v2 import client as zaqarclient
from heat_integrationtests.functional import functional_base
from heat_tempest_plugin.tests.functional import functional_base
class ZaqarWaitConditionTest(functional_base.FunctionalTestsBase):

View File

@ -12,7 +12,7 @@
from oslo_utils import reflection
from heat_integrationtests.common import test
from heat_tempest_plugin.common import test
class ScenarioTestsBase(test.HeatIntegrationTest):

View File

@ -12,8 +12,8 @@
from oslo_log import log as logging
from heat_integrationtests.common import test
from heat_integrationtests.scenario import scenario_base
from heat_tempest_plugin.common import test
from heat_tempest_plugin.tests.scenario import scenario_base
LOG = logging.getLogger(__name__)

View File

@ -15,8 +15,8 @@ import time
import requests
from heat_integrationtests.common import test
from heat_integrationtests.scenario import scenario_base
from heat_tempest_plugin.common import test
from heat_tempest_plugin.tests.scenario import scenario_base
class AutoscalingLoadBalancerTest(scenario_base.ScenarioTestsBase):

View File

@ -15,8 +15,8 @@ import time
import requests
from heat_integrationtests.common import test
from heat_integrationtests.scenario import scenario_base
from heat_tempest_plugin.common import test
from heat_tempest_plugin.tests.scenario import scenario_base
class AutoscalingLoadBalancerv2Test(scenario_base.ScenarioTestsBase):

View File

@ -10,8 +10,8 @@
# License for the specific language governing permissions and limitations
# under the License.
from heat_integrationtests.common import test
from heat_integrationtests.scenario import scenario_base
from heat_tempest_plugin.common import test
from heat_tempest_plugin.tests.scenario import scenario_base
from heatclient.common import template_utils

View File

@ -12,8 +12,8 @@
import json
from heat_integrationtests.common import exceptions
from heat_integrationtests.scenario import scenario_base
from heat_tempest_plugin.common import exceptions
from heat_tempest_plugin.tests.scenario import scenario_base
class CfnInitIntegrationTest(scenario_base.ScenarioTestsBase):

View File

@ -13,8 +13,8 @@
import json
from heat_integrationtests.common import exceptions
from heat_integrationtests.scenario import scenario_base
from heat_tempest_plugin.common import exceptions
from heat_tempest_plugin.tests.scenario import scenario_base
class ServerSignalIntegrationTest(scenario_base.ScenarioTestsBase):

View File

@ -13,7 +13,7 @@
from heatclient.common import template_utils
import six
from heat_integrationtests.scenario import scenario_base
from heat_tempest_plugin.tests.scenario import scenario_base
CFG1_SH = '''#!/bin/sh
echo "Writing to /tmp/$bar"

View File

@ -15,8 +15,8 @@ from cinderclient import exceptions as cinder_exceptions
from oslo_log import log as logging
import six
from heat_integrationtests.common import exceptions
from heat_integrationtests.scenario import scenario_base
from heat_tempest_plugin.common import exceptions
from heat_tempest_plugin.tests.scenario import scenario_base
LOG = logging.getLogger(__name__)

20
requirements.txt Normal file
View File

@ -0,0 +1,20 @@
# The order of packages is significant, because pip processes them in the order
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
eventlet!=0.18.3,!=0.20.1,<0.21.0,>=0.18.2 # MIT
keystoneauth1>=3.2.0 # Apache-2.0
oslo.config>=4.6.0 # Apache-2.0
oslo.log>=3.30.0 # Apache-2.0
paramiko>=2.0.0 # LGPLv2.1+
python-ceilometerclient>=2.5.0 # Apache-2.0
python-cinderclient>=3.2.0 # Apache-2.0
python-heatclient>=1.10.0 # Apache-2.0
python-neutronclient>=6.3.0 # Apache-2.0
python-novaclient>=9.1.0 # Apache-2.0
python-swiftclient>=3.2.0 # Apache-2.0
python-zaqarclient>=1.0.0 # Apache-2.0
testtools>=1.4.0 # MIT
testscenarios>=0.4 # Apache-2.0/BSD
tempest>=16.1.0 # Apache-2.0
gabbi>=1.35.0 # Apache-2.0
kombu!=4.0.2,>=4.0.0 # BSD

48
setup.cfg Normal file
View File

@ -0,0 +1,48 @@
[metadata]
name = heat-tempest-plugin
summary = OpenStack Orchestration Tempest Plugin
description-file =
README.rst
author = OpenStack
author-email = openstack-dev@lists.openstack.org
home-page = http://docs.openstack.org/developer/heat-tempest-plugin
classifier =
Environment :: OpenStack
Intended Audience :: Information Technology
Intended Audience :: System Administrators
License :: OSI Approved :: Apache Software License
Operating System :: POSIX :: Linux
Programming Language :: Python
Programming Language :: Python :: 2
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
Programming Language :: Python :: 3.5
keywords =
setup
distutils
[files]
packages =
heat_tempest_plugin
[entry_points]
tempest.test_plugins =
heat = heat_tempest_plugin.plugin:HeatTempestPlugin
[global]
setup-hooks =
pbr.hooks.setup_hook
[build_sphinx]
all_files = 1
build-dir = doc/build
source-dir = doc/source
[egg_info]
tag_build =
tag_date = 0
tag_svn_revision = 0
[wheel]