Use extras for dependency installation
This allows to only install precisely what's required. Change-Id: I2e9f19b03aca8452ae8fa83f50f7dbfc8e69b56f
This commit is contained in:
parent
09866ac641
commit
ce0a9456eb
@ -25,7 +25,6 @@ from oslo_config import fixture as fixture_config
|
|||||||
from oslotest import mockpatch
|
from oslotest import mockpatch
|
||||||
import six
|
import six
|
||||||
from six.moves.urllib import parse as urlparse
|
from six.moves.urllib import parse as urlparse
|
||||||
import sqlalchemy
|
|
||||||
from testtools import testcase
|
from testtools import testcase
|
||||||
|
|
||||||
from aodh import service
|
from aodh import service
|
||||||
@ -50,6 +49,7 @@ class SQLManager(fixtures.Fixture):
|
|||||||
def __init__(self, conf):
|
def __init__(self, conf):
|
||||||
self.conf = conf
|
self.conf = conf
|
||||||
db_name = 'aodh_%s' % uuid.uuid4().hex
|
db_name = 'aodh_%s' % uuid.uuid4().hex
|
||||||
|
import sqlalchemy
|
||||||
self._engine = sqlalchemy.create_engine(
|
self._engine = sqlalchemy.create_engine(
|
||||||
conf.database.connection.replace(self.url_dbname_placeholder,
|
conf.database.connection.replace(self.url_dbname_placeholder,
|
||||||
self.url_dbname_createstring))
|
self.url_dbname_createstring))
|
||||||
|
@ -20,12 +20,17 @@
|
|||||||
server before running the tests.
|
server before running the tests.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
import unittest
|
||||||
|
|
||||||
from aodh.storage import impl_mongodb
|
try:
|
||||||
|
from aodh.storage import impl_mongodb
|
||||||
|
except ImportError:
|
||||||
|
impl_mongodb = None
|
||||||
from aodh.tests import base as test_base
|
from aodh.tests import base as test_base
|
||||||
from aodh.tests.functional import db as tests_db
|
from aodh.tests.functional import db as tests_db
|
||||||
|
|
||||||
|
|
||||||
|
@unittest.skipUnless(impl_mongodb, "pymongo not available")
|
||||||
@tests_db.run_with('mongodb')
|
@tests_db.run_with('mongodb')
|
||||||
class MongoDBConnection(tests_db.TestBase):
|
class MongoDBConnection(tests_db.TestBase):
|
||||||
def test_connection_pooling(self):
|
def test_connection_pooling(self):
|
||||||
@ -39,6 +44,7 @@ class MongoDBConnection(tests_db.TestBase):
|
|||||||
self.assertTrue(conn.conn)
|
self.assertTrue(conn.conn)
|
||||||
|
|
||||||
|
|
||||||
|
@unittest.skipUnless(impl_mongodb, "pymongo not available")
|
||||||
@tests_db.run_with('mongodb')
|
@tests_db.run_with('mongodb')
|
||||||
class IndexTest(tests_db.TestBase):
|
class IndexTest(tests_db.TestBase):
|
||||||
def _test_ttl_index_absent(self, conn, coll_name, ttl_opt):
|
def _test_ttl_index_absent(self, conn, coll_name, ttl_opt):
|
||||||
@ -78,6 +84,7 @@ class IndexTest(tests_db.TestBase):
|
|||||||
|
|
||||||
|
|
||||||
class CapabilitiesTest(test_base.BaseTestCase):
|
class CapabilitiesTest(test_base.BaseTestCase):
|
||||||
|
@unittest.skipUnless(impl_mongodb, "pymongo not available")
|
||||||
def test_alarm_capabilities(self):
|
def test_alarm_capabilities(self):
|
||||||
expected_capabilities = {
|
expected_capabilities = {
|
||||||
'alarms': {'query': {'simple': True,
|
'alarms': {'query': {'simple': True,
|
||||||
|
@ -241,7 +241,7 @@ function install_aodh {
|
|||||||
_aodh_prepare_coordination
|
_aodh_prepare_coordination
|
||||||
_aodh_prepare_storage_backend
|
_aodh_prepare_storage_backend
|
||||||
install_aodhclient
|
install_aodhclient
|
||||||
setup_develop $AODH_DIR
|
sudo -H pip install -e "$AODH_DIR"[test,$AODH_BACKEND]
|
||||||
sudo install -d -o $STACK_USER -m 755 $AODH_CONF_DIR $AODH_API_LOG_DIR
|
sudo install -d -o $STACK_USER -m 755 $AODH_CONF_DIR $AODH_API_LOG_DIR
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ run through tox_.
|
|||||||
|
|
||||||
3. Install the test dependencies::
|
3. Install the test dependencies::
|
||||||
|
|
||||||
$ sudo pip install -r /opt/stack/aodh/test-requirements.txt
|
$ sudo pip install -e /opt/stack/aodh[test]
|
||||||
|
|
||||||
4. Run the unit and code-style tests::
|
4. Run the unit and code-style tests::
|
||||||
|
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
# of appearance. Changing the order has an impact on the overall integration
|
# of appearance. Changing the order has an impact on the overall integration
|
||||||
# process, which may cause wedges in the gate later.
|
# process, which may cause wedges in the gate later.
|
||||||
|
|
||||||
alembic>=0.7.2
|
|
||||||
retrying!=1.3.0,>=1.2.3 # Apache-2.0
|
retrying!=1.3.0,>=1.2.3 # Apache-2.0
|
||||||
croniter>=0.3.4 # MIT License
|
croniter>=0.3.4 # MIT License
|
||||||
jsonschema!=2.5.0,<3.0.0,>=2.0.0
|
jsonschema!=2.5.0,<3.0.0,>=2.0.0
|
||||||
@ -27,7 +26,6 @@ python-keystoneclient>=1.6.0
|
|||||||
pytz>=2013.6
|
pytz>=2013.6
|
||||||
requests>=2.5.2
|
requests>=2.5.2
|
||||||
six>=1.9.0
|
six>=1.9.0
|
||||||
SQLAlchemy<1.1.0,>=0.9.7
|
|
||||||
stevedore>=1.5.0 # Apache-2.0
|
stevedore>=1.5.0 # Apache-2.0
|
||||||
tooz>=0.16.0 # Apache-2.0
|
tooz>=0.16.0 # Apache-2.0
|
||||||
Werkzeug>=0.7 # BSD License
|
Werkzeug>=0.7 # BSD License
|
||||||
|
38
setup.cfg
38
setup.cfg
@ -25,6 +25,44 @@ setup-hooks =
|
|||||||
packages =
|
packages =
|
||||||
aodh
|
aodh
|
||||||
|
|
||||||
|
[extras]
|
||||||
|
mysql =
|
||||||
|
SQLAlchemy<1.1.0,>=0.9.7
|
||||||
|
alembic>=0.7.2
|
||||||
|
PyMySQL>=0.6.2 # MIT License
|
||||||
|
|
||||||
|
postgresql =
|
||||||
|
SQLAlchemy<1.1.0,>=0.9.7
|
||||||
|
alembic>=0.7.2
|
||||||
|
psycopg2
|
||||||
|
|
||||||
|
mongodb =
|
||||||
|
pymongo>=3.0.2
|
||||||
|
|
||||||
|
hbase =
|
||||||
|
happybase!=0.7,>=0.5:python_version=='2.7'
|
||||||
|
# Required for bson
|
||||||
|
pymongo>=3.0.2
|
||||||
|
|
||||||
|
doc =
|
||||||
|
oslosphinx>=2.5.0 # Apache-2.0
|
||||||
|
reno>=0.1.1 # Apache2
|
||||||
|
sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2
|
||||||
|
sphinxcontrib-httpdomain
|
||||||
|
sphinxcontrib-pecanwsme>=0.8
|
||||||
|
|
||||||
|
test =
|
||||||
|
oslotest>=1.5.1 # Apache-2.0
|
||||||
|
coverage>=3.6
|
||||||
|
fixtures>=1.3.1
|
||||||
|
mock>=1.0
|
||||||
|
testrepository>=0.0.18
|
||||||
|
testtools>=1.4.0
|
||||||
|
gabbi>=0.12.0 # Apache-2.0
|
||||||
|
# Provides subunit-trace
|
||||||
|
tempest-lib>=0.6.1
|
||||||
|
python-subunit>=0.0.18
|
||||||
|
|
||||||
[entry_points]
|
[entry_points]
|
||||||
aodh.storage =
|
aodh.storage =
|
||||||
log = aodh.storage.impl_log:Connection
|
log = aodh.storage.impl_log:Connection
|
||||||
|
@ -1,27 +0,0 @@
|
|||||||
# 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.
|
|
||||||
|
|
||||||
# Hacking already pins down pep8, pyflakes and flake8
|
|
||||||
hacking<0.11,>=0.10.0
|
|
||||||
Babel>=1.3
|
|
||||||
coverage>=3.6
|
|
||||||
fixtures>=1.3.1
|
|
||||||
happybase!=0.7,>=0.5;python_version=='2.7'
|
|
||||||
mock>=1.0
|
|
||||||
PyMySQL>=0.6.2 # MIT License
|
|
||||||
# Docs Requirements
|
|
||||||
oslosphinx>=2.5.0 # Apache-2.0
|
|
||||||
reno>=0.1.1 # Apache2
|
|
||||||
oslotest>=1.5.1 # Apache-2.0
|
|
||||||
psycopg2
|
|
||||||
pymongo>=3.0.2
|
|
||||||
python-subunit>=0.0.18
|
|
||||||
sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2
|
|
||||||
sphinxcontrib-httpdomain
|
|
||||||
sphinxcontrib-pecanwsme>=0.8
|
|
||||||
testrepository>=0.0.18
|
|
||||||
testtools>=1.4.0
|
|
||||||
gabbi>=0.12.0 # Apache-2.0
|
|
||||||
# Provides subunit-trace
|
|
||||||
tempest-lib>=0.6.1
|
|
16
tox.ini
16
tox.ini
@ -4,8 +4,7 @@ skipsdist = True
|
|||||||
envlist = py34,py27,pep8
|
envlist = py34,py27,pep8
|
||||||
|
|
||||||
[testenv]
|
[testenv]
|
||||||
deps = -r{toxinidir}/requirements.txt
|
deps = .[test]
|
||||||
-r{toxinidir}/test-requirements.txt
|
|
||||||
install_command = pip install -U {opts} {packages}
|
install_command = pip install -U {opts} {packages}
|
||||||
usedevelop = True
|
usedevelop = True
|
||||||
setenv = VIRTUAL_ENV={envdir}
|
setenv = VIRTUAL_ENV={envdir}
|
||||||
@ -21,25 +20,30 @@ whitelist_externals = bash
|
|||||||
# in "py-<backend>" jobs
|
# in "py-<backend>" jobs
|
||||||
|
|
||||||
[testenv:py27-hbase]
|
[testenv:py27-hbase]
|
||||||
|
deps = .[hbase,test]
|
||||||
setenv = OS_TEST_PATH=aodh/tests/functional/
|
setenv = OS_TEST_PATH=aodh/tests/functional/
|
||||||
AODH_TEST_STORAGE_URL=hbase://__test__
|
AODH_TEST_STORAGE_URL=hbase://__test__
|
||||||
|
|
||||||
[testenv:py27-mongodb]
|
[testenv:py27-mongodb]
|
||||||
|
deps = .[mongodb,test]
|
||||||
setenv = OS_TEST_PATH=aodh/tests/functional/
|
setenv = OS_TEST_PATH=aodh/tests/functional/
|
||||||
commands =
|
commands =
|
||||||
bash -x {toxinidir}/setup-test-env-mongodb.sh python setup.py testr --slowest --testr-args="{posargs}"
|
bash -x {toxinidir}/setup-test-env-mongodb.sh python setup.py testr --slowest --testr-args="{posargs}"
|
||||||
|
|
||||||
[testenv:py27-mysql]
|
[testenv:py27-mysql]
|
||||||
|
deps = .[mysql,test]
|
||||||
setenv = OS_TEST_PATH=aodh/tests/functional/
|
setenv = OS_TEST_PATH=aodh/tests/functional/
|
||||||
commands =
|
commands =
|
||||||
bash -x {toxinidir}/setup-test-env-mysql.sh python setup.py testr --slowest --testr-args="{posargs}"
|
bash -x {toxinidir}/setup-test-env-mysql.sh python setup.py testr --slowest --testr-args="{posargs}"
|
||||||
|
|
||||||
[testenv:py27-pgsql]
|
[testenv:py27-pgsql]
|
||||||
|
deps = .[postgresql,test]
|
||||||
setenv = OS_TEST_PATH=aodh/tests/functional/
|
setenv = OS_TEST_PATH=aodh/tests/functional/
|
||||||
commands =
|
commands =
|
||||||
bash -x {toxinidir}/setup-test-env-postgresql.sh python setup.py testr --slowest --testr-args="{posargs}"
|
bash -x {toxinidir}/setup-test-env-postgresql.sh python setup.py testr --slowest --testr-args="{posargs}"
|
||||||
|
|
||||||
[testenv:functional]
|
[testenv:functional]
|
||||||
|
deps = .[mysql,postgresql,mongodb,test]
|
||||||
setenv = VIRTUAL_ENV={envdir}
|
setenv = VIRTUAL_ENV={envdir}
|
||||||
OS_TEST_PATH=aodh/tests/functional/
|
OS_TEST_PATH=aodh/tests/functional/
|
||||||
GABBI_LIVE_FAIL_IF_NO_TEST=1
|
GABBI_LIVE_FAIL_IF_NO_TEST=1
|
||||||
@ -52,6 +56,7 @@ commands =
|
|||||||
# gabbi tests without needing to discovery across the entire body of
|
# gabbi tests without needing to discovery across the entire body of
|
||||||
# tests.
|
# tests.
|
||||||
[testenv:gabbi]
|
[testenv:gabbi]
|
||||||
|
deps = .[mongodb,test]
|
||||||
setenv = OS_TEST_PATH=aodh/tests/functional/gabbi
|
setenv = OS_TEST_PATH=aodh/tests/functional/gabbi
|
||||||
commands =
|
commands =
|
||||||
bash -x {toxinidir}/setup-test-env-mongodb.sh \
|
bash -x {toxinidir}/setup-test-env-mongodb.sh \
|
||||||
@ -61,22 +66,26 @@ commands =
|
|||||||
commands = bash -x {toxinidir}/setup-test-env-mongodb.sh python setup.py testr --slowest --coverage --testr-args="{posargs}"
|
commands = bash -x {toxinidir}/setup-test-env-mongodb.sh python setup.py testr --slowest --coverage --testr-args="{posargs}"
|
||||||
|
|
||||||
[testenv:pep8]
|
[testenv:pep8]
|
||||||
|
deps = hacking<0.11,>=0.10.0
|
||||||
commands =
|
commands =
|
||||||
flake8
|
flake8
|
||||||
# Check that .po and .pot files are valid:
|
# Check that .po and .pot files are valid:
|
||||||
bash -c "find aodh -type f -regex '.*\.pot?' -print0|xargs -0 -n 1 msgfmt --check-format -o /dev/null"
|
bash -c "find aodh -type f -regex '.*\.pot?' -print0|xargs -0 -n 1 msgfmt --check-format -o /dev/null"
|
||||||
|
|
||||||
[testenv:releasenotes]
|
[testenv:releasenotes]
|
||||||
|
deps = .[doc]
|
||||||
commands = sphinx-build -a -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
commands = sphinx-build -a -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
||||||
|
|
||||||
[testenv:genconfig]
|
[testenv:genconfig]
|
||||||
commands = oslo-config-generator --config-file=etc/aodh/aodh-config-generator.conf
|
commands = oslo-config-generator --config-file=etc/aodh/aodh-config-generator.conf
|
||||||
|
|
||||||
[testenv:docs]
|
[testenv:docs]
|
||||||
|
deps = .[doc]
|
||||||
commands = python setup.py build_sphinx
|
commands = python setup.py build_sphinx
|
||||||
setenv = PYTHONHASHSEED=0
|
setenv = PYTHONHASHSEED=0
|
||||||
|
|
||||||
[testenv:venv]
|
[testenv:venv]
|
||||||
|
deps = .[doc]
|
||||||
commands = {posargs}
|
commands = {posargs}
|
||||||
setenv = PYTHONHASHSEED=0
|
setenv = PYTHONHASHSEED=0
|
||||||
|
|
||||||
@ -84,14 +93,17 @@ setenv = PYTHONHASHSEED=0
|
|||||||
commands = bash -x oslo_debug_helper {posargs}
|
commands = bash -x oslo_debug_helper {posargs}
|
||||||
|
|
||||||
[testenv:debug-mongodb]
|
[testenv:debug-mongodb]
|
||||||
|
deps = .[mongodb,test]
|
||||||
setenv = OS_TEST_PATH=aodh/tests/functional/
|
setenv = OS_TEST_PATH=aodh/tests/functional/
|
||||||
commands = bash -x {toxinidir}/setup-test-env-mongodb.sh oslo_debug_helper {posargs}
|
commands = bash -x {toxinidir}/setup-test-env-mongodb.sh oslo_debug_helper {posargs}
|
||||||
|
|
||||||
[testenv:debug-mysql]
|
[testenv:debug-mysql]
|
||||||
|
deps = .[mysql,test]
|
||||||
setenv = OS_TEST_PATH=aodh/tests/functional/
|
setenv = OS_TEST_PATH=aodh/tests/functional/
|
||||||
commands = bash -x {toxinidir}/setup-test-env-mysql.sh oslo_debug_helper {posargs}
|
commands = bash -x {toxinidir}/setup-test-env-mysql.sh oslo_debug_helper {posargs}
|
||||||
|
|
||||||
[testenv:debug-pgsql]
|
[testenv:debug-pgsql]
|
||||||
|
deps = .[postgresql,test]
|
||||||
setenv = OS_TEST_PATH=aodh/tests/functional/
|
setenv = OS_TEST_PATH=aodh/tests/functional/
|
||||||
commands = bash -x {toxinidir}/setup-test-env-postgresql.sh oslo_debug_helper {posargs}
|
commands = bash -x {toxinidir}/setup-test-env-postgresql.sh oslo_debug_helper {posargs}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user