Restructure of sahara-tests repository

Add correctly structure of sahara-tests repository

Change-Id: I338bbb2e356f3f49593247488880dc94693326f2
This commit is contained in:
Evgeny Sikachev 2016-01-14 14:53:15 +03:00
parent 60f59a1366
commit d850637c4c
45 changed files with 79 additions and 124 deletions

View File

@ -13,14 +13,14 @@ YAML files with a scenario for the specific plugin:
.. sourcecode:: console
$ tox -e scenario etc/scenario/sahara-ci/simple-testcase.yaml
$ tox -e venv -- sahara-scenario etc/scenario/sahara-ci/simple-testcase.yaml
..
or, if the file is a YAML Mako template:
.. sourcecode:: console
$ tox -e scenario -- -V templatevars.ini etc/scenario/sahara-ci/vanilla-2.7.1.yaml.mako
$ tox -e venv -- sahara-scenario -V templatevars.ini etc/scenario/sahara-ci/vanilla-2.7.1.yaml.mako
..
where templatevars.ini contains the values of the variables referenced
@ -33,7 +33,7 @@ and use the following tox env:
.. sourcecode:: console
$ tox -e scenario -- -V templatevars.ini etc/scenario/sahara-ci/vanilla-2.7.1.yaml.mako
$ tox -e venv -- sahara-scenario -V templatevars.ini etc/scenario/sahara-ci/vanilla-2.7.1.yaml.mako
..
If you want to run scenario tests for a few plugins or their versions, you
@ -41,14 +41,14 @@ should use the several YAML and/or YAML Mako template files:
.. sourcecode:: console
$ tox -e scenario -- -V templatevars.ini etc/scenario/sahara-ci/cdh-5.4.0.yaml.mako etc/scenario/sahara-ci/vanilla-2.7.1.yaml.mako ...
$ tox -e venv -- sahara-scenario -V templatevars.ini etc/scenario/sahara-ci/cdh-5.4.0.yaml.mako etc/scenario/sahara-ci/vanilla-2.7.1.yaml.mako ...
..
Here are a few more examples.
.. sourcecode:: console
$ tox -e scenario -- -V templatevars.ini etc/scenario/sahara-ci/credentials.yaml.mako etc/scenario/sahara-ci/vanilla-2.7.1.yaml.mako
$ tox -e venv -- sahara-scenario -V templatevars.ini etc/scenario/sahara-ci/credentials.yaml.mako etc/scenario/sahara-ci/vanilla-2.7.1.yaml.mako
..
@ -59,13 +59,13 @@ included into ``vanilla-2.7.1.yaml.mako`` with the values defined into
For more information about writing scenario YAML files, see the section
section `How to write scenario files`_.
``tox -e scenario etc/scenario/sahara-ci`` will run tests from the test directory.
``tox -e venv -- sahara-scenario etc/scenario/sahara-ci`` will run tests from the test directory.
Also, you can validate your yaml-files using flag ``--validate`` via command:
.. sourcecode:: console
$ tox -e scenario -- --validate -V templatevars.ini etc/scenario/sahara-ci/credantials.yaml.mako etc/scenario/sahara-ci/vanilla-2.7.1.yaml.mako
$ tox -e venv -- sahara-scenario --validate -V templatevars.ini etc/scenario/sahara-ci/credantials.yaml.mako etc/scenario/sahara-ci/vanilla-2.7.1.yaml.mako
..

View File

@ -31,16 +31,16 @@ from tempest_lib import base
from tempest_lib.common import ssh as connection
from tempest_lib import exceptions as exc
from sahara.tests.scenario import clients
from sahara.tests.scenario import timeouts
from sahara.tests.scenario import utils
from sahara.utils import crypto as ssh
from sahara_tests.scenario import clients
from sahara_tests.scenario import timeouts
from sahara_tests.scenario import utils
from sahara_tests.utils import crypto as ssh
logger = logging.getLogger('swiftclient')
logger.setLevel(logging.CRITICAL)
DEFAULT_TEMPLATES_PATH = (
'sahara/tests/scenario/templates/%(plugin_name)s/%(hadoop_version)s')
'sahara_tests/scenario/templates/%(plugin_name)s/%(hadoop_version)s')
CHECK_OK_STATUS = "OK"
CHECK_FAILED_STATUS = "FAILED"
CLUSTER_STATUS_ACTIVE = "Active"

View File

@ -28,7 +28,7 @@ from swiftclient import client as swift_client
from swiftclient import exceptions as swift_exc
from tempest_lib import exceptions as exc
from sahara.tests.scenario import utils
from sahara_tests.scenario import utils
def get_session(auth_url=None, username=None, password=None,
@ -41,7 +41,7 @@ def get_session(auth_url=None, username=None, password=None,
project_domain_name='default')
return session.Session(auth=auth, verify=verify, cert=cert)
from sahara.tests.scenario import timeouts
from sahara_tests.scenario import timeouts
class Client(object):

View File

@ -27,10 +27,10 @@ from oslo_utils import fileutils
import six
import yaml
from sahara.tests.scenario import validation
from sahara_tests.scenario import validation
TEST_TEMPLATE_PATH = 'sahara/tests/scenario/testcase.py.mako'
TEST_TEMPLATE_PATH = 'sahara_tests/scenario/testcase.py.mako'
def set_defaults(config):

View File

@ -1,4 +1,4 @@
from sahara.tests.scenario import base
from sahara_tests.scenario import base
% for testcase in testcases:
${make_testcase(testcase)}
@ -16,7 +16,7 @@ class ${testcase['class_name']}TestCase(base.BaseTestCase):
def test_plugin(self):
self.create_cluster()
% for check in testcase['scenario']:
from sahara.tests.scenario.custom_checks import check_${check}
from sahara_tests.scenario.custom_checks import check_${check}
check_${check}.check(self)
% endfor
</%def>

View File

@ -27,8 +27,8 @@ from saharaclient.api import plugins
from tempest_lib import exceptions as exc
import testtools
from sahara.tests.scenario import base
from sahara.tests.scenario import timeouts
from sahara_tests.scenario import base
from sahara_tests.scenario import timeouts
class FakeSaharaClient(object):
@ -70,7 +70,7 @@ class TestBase(testtools.TestCase):
def setUp(self):
super(TestBase, self).setUp()
with mock.patch(
'sahara.tests.scenario.base.BaseTestCase.__init__'
'sahara_tests.scenario.base.BaseTestCase.__init__'
) as mock_init:
mock_init.return_value = None
self.base_scenario = base.BaseTestCase()
@ -149,7 +149,7 @@ class TestBase(testtools.TestCase):
self.base_scenario.ng_name_map = {}
self.base_scenario.key_name = 'test_key'
self.base_scenario.key = 'key_from_yaml'
self.base_scenario.template_path = ('sahara/tests/scenario/templates/'
self.base_scenario.template_path = ('sahara_tests/scenario/templates/'
'vanilla/2.7.1')
self.job = self.base_scenario.testcase["edp_jobs_flow"].get(
'test_flow')[0]
@ -199,7 +199,7 @@ class TestBase(testtools.TestCase):
cert='/etc/tests/cert.crt',
verify=True)
@mock.patch('sahara.tests.scenario.clients.NeutronClient.get_network_id',
@mock.patch('sahara_tests.scenario.clients.NeutronClient.get_network_id',
return_value='mock_net')
@mock.patch('saharaclient.client.Client',
return_value=FakeSaharaClient())
@ -212,7 +212,7 @@ class TestBase(testtools.TestCase):
self.assertEqual({'worker': 'id_ng', 'master': 'id_ng'},
self.base_scenario._create_node_group_templates())
@mock.patch('sahara.tests.scenario.clients.NeutronClient.get_network_id',
@mock.patch('sahara_tests.scenario.clients.NeutronClient.get_network_id',
return_value='mock_net')
@mock.patch('saharaclient.client.Client', return_value=FakeSaharaClient())
@mock.patch('saharaclient.api.cluster_templates.'
@ -224,7 +224,7 @@ class TestBase(testtools.TestCase):
self.assertEqual('id_ct',
self.base_scenario._create_cluster_template())
@mock.patch('sahara.tests.scenario.clients.NovaClient.get_image_id',
@mock.patch('sahara_tests.scenario.clients.NovaClient.get_image_id',
return_value='mock_image')
@mock.patch('saharaclient.client.Client', return_value=FakeSaharaClient())
@mock.patch('saharaclient.api.clusters.ClusterManager.create',
@ -236,12 +236,12 @@ class TestBase(testtools.TestCase):
self.base_scenario._create_cluster('id_ct'))
@mock.patch('saharaclient.client.Client', return_value=FakeSaharaClient())
@mock.patch('sahara.tests.scenario.clients.NeutronClient.get_network_id',
@mock.patch('sahara_tests.scenario.clients.NeutronClient.get_network_id',
return_value='mock_net')
@mock.patch('saharaclient.api.base.ResourceManager._get',
return_value=FakeResponse(
set_status=base.CLUSTER_STATUS_ACTIVE))
@mock.patch('sahara.tests.scenario.base.BaseTestCase._check_event_logs')
@mock.patch('sahara_tests.scenario.base.BaseTestCase._check_event_logs')
def test__poll_cluster_status(self, mock_status, mock_neutron,
mock_saharaclient, mock_check_event_logs):
self.base_scenario._init_clients()
@ -273,7 +273,7 @@ class TestBase(testtools.TestCase):
self.base_scenario._init_clients()
self.assertEqual('internal-db://id_internal_db_data',
self.base_scenario._create_internal_db_data(
'sahara/tests/scenario_unit/vanilla2_7_1.yaml'))
'sahara_tests/unit/scenario/vanilla2_7_1.yaml'))
@mock.patch('swiftclient.client.Connection.put_container',
return_value=None)
@ -349,11 +349,11 @@ class TestBase(testtools.TestCase):
['id_for_job_binaries'],
[]))
@mock.patch('sahara.tests.scenario.clients.SaharaClient.get_cluster_id',
@mock.patch('sahara_tests.scenario.clients.SaharaClient.get_cluster_id',
return_value='cluster_id')
@mock.patch('sahara.tests.scenario.base.BaseTestCase.check_cinder',
@mock.patch('sahara_tests.scenario.base.BaseTestCase.check_cinder',
return_value=None)
@mock.patch('sahara.tests.scenario.clients.SaharaClient.get_job_status',
@mock.patch('sahara_tests.scenario.clients.SaharaClient.get_job_status',
return_value='KILLED')
@mock.patch('saharaclient.api.base.ResourceManager._get',
return_value=FakeResponse(set_id='id_for_run_job_get',
@ -361,22 +361,22 @@ class TestBase(testtools.TestCase):
name='test_job'))
@mock.patch('saharaclient.api.base.ResourceManager._create',
return_value=FakeResponse(set_id='id_for_run_job_create'))
@mock.patch('sahara.tests.scenario.base.BaseTestCase.'
@mock.patch('sahara_tests.scenario.base.BaseTestCase.'
'_poll_cluster_status',
return_value=None)
@mock.patch('sahara.tests.scenario.base.BaseTestCase.'
@mock.patch('sahara_tests.scenario.base.BaseTestCase.'
'_create_node_group_templates',
return_value='id_node_group_template')
@mock.patch('sahara.tests.scenario.base.BaseTestCase.'
@mock.patch('sahara_tests.scenario.base.BaseTestCase.'
'_create_cluster_template',
return_value='id_cluster_template')
@mock.patch('sahara.tests.scenario.base.BaseTestCase._create_cluster',
@mock.patch('sahara_tests.scenario.base.BaseTestCase._create_cluster',
return_value='id_cluster')
@mock.patch('sahara.tests.scenario.base.BaseTestCase._create_job',
@mock.patch('sahara_tests.scenario.base.BaseTestCase._create_job',
return_value='id_for_job')
@mock.patch('sahara.tests.scenario.base.BaseTestCase._create_job_binaries',
@mock.patch('sahara_tests.scenario.base.BaseTestCase._create_job_binaries',
return_value=(['id_for_job_binaries'], []))
@mock.patch('sahara.tests.scenario.base.BaseTestCase._create_datasources',
@mock.patch('sahara_tests.scenario.base.BaseTestCase._create_datasources',
return_value=('id_for_datasource', 'id_for_datasource'))
@mock.patch('saharaclient.client.Client', return_value=FakeSaharaClient())
def test_check_run_jobs(self, mock_saharaclient, mock_datasources,
@ -412,7 +412,7 @@ class TestBase(testtools.TestCase):
"type=Java has status KILLED",
self.base_scenario._results[-1]['traceback'][-1])
@mock.patch('sahara.tests.scenario.base.BaseTestCase.'
@mock.patch('sahara_tests.scenario.base.BaseTestCase.'
'_poll_cluster_status',
return_value=None)
@mock.patch('saharaclient.api.base.ResourceManager._get',
@ -431,7 +431,7 @@ class TestBase(testtools.TestCase):
self.assertIsNone(self.base_scenario.check_scale())
@mock.patch('saharaclient.client.Client', return_value=FakeSaharaClient())
@mock.patch('sahara.tests.scenario.clients.NeutronClient.get_network_id',
@mock.patch('sahara_tests.scenario.clients.NeutronClient.get_network_id',
return_value='mock_net')
@mock.patch('saharaclient.api.base.ResourceManager._get',
return_value=FakeResponse(set_status='Error'))
@ -440,12 +440,12 @@ class TestBase(testtools.TestCase):
with testtools.ExpectedException(exc.TempestException):
self.base_scenario._poll_cluster_status('id_cluster')
@mock.patch('sahara.tests.scenario.clients.SaharaClient.__init__',
@mock.patch('sahara_tests.scenario.clients.SaharaClient.__init__',
return_value=None)
def test_get_nodes_with_process(self, mock_init):
self.base_scenario._init_clients()
with mock.patch(
'sahara.tests.scenario.clients.SaharaClient.get_cluster',
'sahara_tests.scenario.clients.SaharaClient.get_cluster',
return_value=FakeResponse(node_groups=[
{
'node_processes': 'test',
@ -458,7 +458,7 @@ class TestBase(testtools.TestCase):
)
with mock.patch(
'sahara.tests.scenario.clients.SaharaClient.get_cluster',
'sahara_tests.scenario.clients.SaharaClient.get_cluster',
return_value=FakeResponse(node_groups=[
{
'node_processes': 'test',
@ -472,7 +472,7 @@ class TestBase(testtools.TestCase):
def test_get_node_list_with_volumes(self, mock_keystone):
self.base_scenario._init_clients()
with mock.patch(
'sahara.tests.scenario.clients.SaharaClient.get_cluster',
'sahara_tests.scenario.clients.SaharaClient.get_cluster',
return_value=FakeResponse(node_groups=[
{
'node_processes': 'test',
@ -492,9 +492,9 @@ class TestBase(testtools.TestCase):
'volume_mount_prefix': 2
}], self.base_scenario._get_node_list_with_volumes())
@mock.patch('sahara.tests.scenario.clients.SaharaClient.__init__',
@mock.patch('sahara_tests.scenario.clients.SaharaClient.__init__',
return_value=None)
@mock.patch('sahara.tests.scenario.clients.SaharaClient.get_datasource')
@mock.patch('sahara_tests.scenario.clients.SaharaClient.get_datasource')
def test_put_io_data_to_configs(self, get_datasources, sahara_mock):
self.base_scenario._init_clients()
get_datasources.side_effect = [
@ -508,7 +508,7 @@ class TestBase(testtools.TestCase):
self.base_scenario._put_io_data_to_configs(
configs, '1', '2'))
@mock.patch('sahara.tests.scenario.base.BaseTestCase.addCleanup')
@mock.patch('sahara_tests.scenario.base.BaseTestCase.addCleanup')
@mock.patch('novaclient.v2.flavors.FlavorManager.create',
return_value=FakeResponse(set_id='flavor_id'))
@mock.patch('keystoneclient.session.Session')
@ -525,7 +525,7 @@ class TestBase(testtools.TestCase):
"swap_disk": 1
}))
@mock.patch('sahara.tests.scenario.base.BaseTestCase._run_command_on_node')
@mock.patch('sahara_tests.scenario.base.BaseTestCase._run_command_on_node')
@mock.patch('keystoneclient.session.Session')
def test_create_hdfs_data(self, mock_session, mock_ssh):
self.base_scenario._init_clients()
@ -535,7 +535,7 @@ class TestBase(testtools.TestCase):
None))
input_path = 'etc/edp-examples/edp-pig/trim-spaces/data/input'
with mock.patch(
'sahara.tests.scenario.clients.SaharaClient.get_cluster',
'sahara_tests.scenario.clients.SaharaClient.get_cluster',
return_value=FakeResponse(node_groups=[
{
'instances': [

View File

@ -18,7 +18,7 @@ import sys
import mock
import testtools
from sahara.tests.scenario import runner
from sahara_tests.scenario import runner
class RunnerUnitTest(testtools.TestCase):
@ -130,7 +130,7 @@ class RunnerUnitTest(testtools.TestCase):
"additional_libs": [
{
"type": "database",
"source": "sahara/tests/integration/tests/"
"source": "sahara_tests/integration/tests/"
"resources/"
}],
"configs": "edp.java.main_class: org.apache.hadoop."
@ -144,7 +144,7 @@ class RunnerUnitTest(testtools.TestCase):
"additional_libs": [
{
"type": "database",
"source": "sahara/tests/integration/tests/"
"source": "sahara_tests/integration/tests/"
"resources/"
}],
"configs": "edp.java.main_class: org.apache.hadoop."
@ -209,7 +209,7 @@ class RunnerUnitTest(testtools.TestCase):
'type': 'Java',
'additional_libs': [
{
'source': 'sahara/tests/integration/'
'source': 'sahara_tests/integration/'
'tests/resources/',
'type': 'database'
}]
@ -232,49 +232,49 @@ class RunnerUnitTest(testtools.TestCase):
@mock.patch('sys.exit', return_value=None)
@mock.patch('subprocess.call', return_value=None)
def test_runner_main(self, mock_sub, mock_sys):
sys.argv = ['sahara/tests/scenario/runner.py',
'sahara/tests/scenario_unit/vanilla2_7_1.yaml']
sys.argv = ['sahara_tests/scenario/runner.py',
'sahara_tests/unit/scenario/vanilla2_7_1.yaml']
runner.main()
@mock.patch('sys.exit', return_value=None)
@mock.patch('subprocess.call', return_value=None)
def test_runner_template_missing_varfile(self, mock_sub, mock_sys):
sys.argv = ['sahara/tests/scenario/runner.py',
'sahara/tests/scenario_unit/vanilla2_7_1.yaml.mako']
sys.argv = ['sahara_tests/scenario/runner.py',
'sahara_tests/unit/scenario/vanilla2_7_1.yaml.mako']
self.assertRaises(NameError, runner.main)
@mock.patch('sys.exit', return_value=None)
@mock.patch('subprocess.call', return_value=None)
def test_runner_template_wrong_varfile(self, mock_sub, mock_sys):
sys.argv = ['sahara/tests/scenario/runner.py',
sys.argv = ['sahara_tests/scenario/runner.py',
'-V',
'sahara/tests/scenario_unit/templatevars_nodefault.ini',
'sahara/tests/scenario_unit/vanilla2_7_1.yaml.mako']
'sahara_tests/unit/scenario/templatevars_nodefault.ini',
'sahara_tests/unit/scenario/vanilla2_7_1.yaml.mako']
self.assertRaises(NameError, runner.main)
@mock.patch('sys.exit', return_value=None)
@mock.patch('subprocess.call', return_value=None)
def test_runner_template_incomplete_varfile(self, mock_sub, mock_sys):
sys.argv = ['sahara/tests/scenario/runner.py',
sys.argv = ['sahara_tests/scenario/runner.py',
'-V',
'sahara/tests/scenario_unit/templatevars_incomplete.ini',
'sahara/tests/scenario_unit/vanilla2_7_1.yaml.mako']
'sahara_tests/unit/scenario/templatevars_incomplete.ini',
'sahara_tests/unit/scenario/vanilla2_7_1.yaml.mako']
self.assertRaises(NameError, runner.main)
@mock.patch('sys.exit', return_value=None)
@mock.patch('subprocess.call', return_value=None)
def test_runner_template_working(self, mock_sub, mock_sys):
sys.argv = ['sahara/tests/scenario/runner.py',
sys.argv = ['sahara_tests/scenario/runner.py',
'-V',
'sahara/tests/scenario_unit/templatevars_complete.ini',
'sahara/tests/scenario_unit/vanilla2_7_1.yaml.mako']
'sahara_tests/unit/scenario/templatevars_complete.ini',
'sahara_tests/unit/scenario/vanilla2_7_1.yaml.mako']
runner.main()
@mock.patch('sys.exit', return_value=None)
def test_runner_validate(self, mock_sys):
sys.argv = ['sahara/tests/scenario/runner.py',
sys.argv = ['sahara_tests/scenario/runner.py',
'--validate',
'-V',
'sahara/tests/scenario_unit/templatevars_complete.ini',
'sahara/tests/scenario_unit/vanilla2_7_1.yaml.mako']
'sahara_tests/unit/scenario/templatevars_complete.ini',
'sahara_tests/unit/scenario/vanilla2_7_1.yaml.mako']
runner.main()

View File

@ -16,12 +16,12 @@
import testtools
import yaml
from sahara.tests.scenario import validation
from sahara_tests.scenario import validation
class TestValidation(testtools.TestCase):
def test_validation(self):
with open("sahara/tests/scenario_unit/vanilla2_7_1.yaml",
with open("sahara_tests/unit/scenario/vanilla2_7_1.yaml",
"r") as yaml_file:
config = yaml.load(yaml_file)
self.assertIsNone(validation.validate(config))

View File

@ -20,7 +20,7 @@ import paramiko
import six
from tempest_lib import exceptions as ex
from sahara.utils import tempfiles
from sahara_tests.utils import tempfiles
def to_paramiko_private_key(pkey):

View File

@ -1,6 +1,7 @@
[metadata]
name = sahara
summary = Sahara project
name = sahara-tests
summary = Sahara tests
description-file = README.rst
license = Apache Software License
classifiers =
Programming Language :: Python
@ -20,62 +21,16 @@ setup-hooks = pbr.hooks.setup_hook
[files]
packages =
sahara
sahara-tests
data_files =
share/sahara = etc/sahara/*
etc/sahara-scenario = etc/*
[entry_points]
console_scripts =
sahara-all = sahara.cli.sahara_all:main
sahara-api = sahara.cli.sahara_api:main
sahara-engine = sahara.cli.sahara_engine:main
sahara-db-manage = sahara.db.migration.cli:main
sahara-rootwrap = oslo_rootwrap.cmd:main
_sahara-subprocess = sahara.cli.sahara_subprocess:main
sahara-templates = sahara.db.templates.cli:main
sahara.cluster.plugins =
vanilla = sahara.plugins.vanilla.plugin:VanillaProvider
hdp = sahara.plugins.hdp.ambariplugin:AmbariPlugin
ambari = sahara.plugins.ambari.plugin:AmbariPluginProvider
mapr = sahara.plugins.mapr.plugin:MapRPlugin
cdh = sahara.plugins.cdh.plugin:CDHPluginProvider
fake = sahara.plugins.fake.plugin:FakePluginProvider
spark = sahara.plugins.spark.plugin:SparkProvider
storm = sahara.plugins.storm.plugin:StormProvider
sahara.infrastructure.engine =
heat = sahara.service.heat.heat_engine:HeatEngine
sahara.remote =
ssh = sahara.utils.ssh_remote:SshRemoteDriver
sahara.run.mode =
all-in-one = sahara.service.ops:LocalOps
distributed = sahara.service.ops:RemoteOps
oslo.config.opts =
sahara.config = sahara.config:list_opts
tempest.test_plugins =
sahara_clients_scenario_tests = sahara.tests.tempest.scenario.data_processing.plugin:SaharaClientsScenarioPlugin
sahara-scenario = sahara_tests.scenario.runner:main
[build_sphinx]
all_files = 1
build-dir = doc/build
source-dir = doc/source
[extract_messages]
keywords = _ gettext ngettext l_ lazy_gettext
mapping_file = babel.cfg
output_file = sahara/locale/sahara.pot
[compile_catalog]
directory = sahara/locale
domain = sahara
[update_catalog]
domain = sahara
output_dir = sahara/locale
input_file = sahara/locale/sahara.pot

View File

@ -8,7 +8,7 @@ usedevelop = True
install_command = pip install -U {opts} {packages}
setenv =
VIRTUAL_ENV={envdir}
DISCOVER_DIRECTORY=sahara/tests/scenario_unit
DISCOVER_DIRECTORY=sahara_tests/unit/scenario
deps =
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt