# Tox (http://tox.testrun.org/) is a tool for running tests
# in multiple virtualenvs. This configuration file will run the
# test suite on all supported python versions and providers.
# To use it, "pip install tox" and then run "tox" from this directory.
# You will have to set all required environment variables (below) before
# running the tests.
#
# Alternatively, to run mock tests only, run tox as follows:
# CB_USE_MOCK_PROVIDERS=True tox -e py27-aws
#
# Simply running tox -e py27-aws also works because the default is to use
# mock providers.

[tox]
envlist = {py27,py36,pypy}-{aws,azure,openstack}

[testenv]
commands = flake8 cloudbridge test setup.py
           # see setup.cfg for options sent to nosetests and coverage
           nosetests -v -s --logging-format='%(asctime)s [%(levelname)s] %(name)s: %(message)s' {posargs}
setenv =
    MOTO_AMIS_PATH=./test/fixtures/custom_amis.json
    aws: CB_TEST_PROVIDER=aws
    azure: CB_TEST_PROVIDER=azure
    openstack: CB_TEST_PROVIDER=openstack
passenv =
    CB_USE_MOCK_PROVIDERS
    aws: CB_IMAGE_AWS CB_INSTANCE_TYPE_AWS CB_PLACEMENT_AWS AWS_ACCESS_KEY AWS_SECRET_KEY
    azure: AZURE_SUBSCRIPTION_ID AZURE_CLIENT_ID AZURE_SECRET AZURE_TENANT AZURE_REGION_NAME AZURE_RESOURCE_GROUP AZURE_STORAGE_ACCOUNT AZURE_VM_DEFAULT_USER_NAME AZURE_PUBLIC_KEY_STORAGE_TABLE_NAME
    openstack:  CB_IMAGE_OS CB_INSTANCE_TYPE_OS CB_PLACEMENT_OS OS_AUTH_URL OS_PASSWORD OS_PROJECT_NAME OS_TENANT_NAME OS_USERNAME OS_REGION_NAME OS_USER_DOMAIN_NAME OS_PROJECT_DOMAIN_NAME NOVA_SERVICE_NAME
deps =
    -rrequirements.txt
    coverage
