<commit_before>[tox]
envlist = docs,py27,py34,pep8
minversion = 1.8
skipsdist = True

[testenv]
setenv = VIRTUAL_ENV={envdir}
passenv = TRACE_FAILONLY
usedevelop = True
install_command = pip install -U {opts} {packages}
deps = -r{toxinidir}/requirements.txt
       -r{toxinidir}/test-requirements.txt
whitelist_externals = sh
commands =
  dsvm-functional: {toxinidir}/tools/deploy_rootwrap.sh {toxinidir} {envdir}/etc {envdir}/bin
  ostestr --regex '{posargs}'
# there is also secret magic in ostestr which lets you run in a fail only
# mode. To do this define the TRACE_FAILONLY environmental variable.

[testenv:api]
basepython = python2.7
setenv = {[testenv]setenv}
         OS_TEST_PATH=./neutron/tests/api
         TEMPEST_CONFIG_DIR={env:TEMPEST_CONFIG_DIR:/opt/stack/tempest/etc}
         OS_TEST_API_WITH_REST=1

[testenv:common]
# Fake job to define environment variables shared between dsvm/non-dsvm jobs
setenv = OS_TEST_TIMEOUT=180
commands = false

[testenv:dsvm]
# Fake job to define environment variables shared between dsvm jobs
setenv = OS_SUDO_TESTING=1
         OS_ROOTWRAP_CMD=sudo {envdir}/bin/neutron-rootwrap {envdir}/etc/neutron/rootwrap.conf
         OS_ROOTWRAP_DAEMON_CMD=sudo {envdir}/bin/neutron-rootwrap-daemon {envdir}/etc/neutron/rootwrap.conf
         OS_FAIL_ON_MISSING_DEPS=1
commands = false

[testenv:functional]
basepython = python2.7
setenv = {[testenv]setenv}
         {[testenv:common]setenv}
         OS_TEST_PATH=./neutron/tests/functional
deps =
  {[testenv]deps}
  -r{toxinidir}/neutron/tests/functional/requirements.txt

[testenv:dsvm-functional]
basepython = python2.7
setenv = {[testenv:functional]setenv}
         {[testenv:dsvm]setenv}
sitepackages=True
deps =
  {[testenv:functional]deps}

[testenv:fullstack]
setenv = {[testenv]setenv}
         {[testenv:common]setenv}
         OS_TEST_PATH=./neutron/tests/fullstack
deps =
  {[testenv]deps}
  -r{toxinidir}/neutron/tests/functional/requirements.txt

[testenv:dsvm-fullstack]
setenv = {[testenv:fullstack]setenv}
         {[testenv:dsvm]setenv}
sitepackages=True
deps =
  {[testenv:functional]deps}

[tox:jenkins]
sitepackages = True
downloadcache = ~/cache/pip

[testenv:pep8]
basepython = python2.7
deps =
  {[testenv]deps}
commands=
  # If it is easier to add a check via a shell script, consider adding it in this file
  sh ./tools/misc-sanity-checks.sh
  {toxinidir}/tools/check_unit_test_structure.sh
  # Checks for coding and style guidelines
  flake8
  sh ./tools/coding-checks.sh --pylint '{posargs}'
  neutron-db-manage --config-file neutron/tests/etc/neutron.conf check_migration
whitelist_externals =
  sh
  bash

[testenv:cover]
basepython = python2.7
commands =
  python setup.py testr --coverage --testr-args='{posargs}'

[testenv:venv]
commands = {posargs}

[testenv:docs]
commands = sphinx-build -W -b html doc/source doc/build/html

[testenv:py34]
commands = python setup.py test --testr-args='{posargs: \
     neutron.tests.unit.test_context \
     neutron.tests.unit.services.metering.drivers.test_iptables \
     neutron.tests.unit.services.metering.agents.test_metering_agent \
     neutron.tests.unit.services.test_provider_configuration \
     neutron.tests.unit.plugins.ml2.drivers.mech_sriov.agent.test_sriov_nic_agent \
     neutron.tests.unit.plugins.ml2.drivers.mech_sriov.agent.test_eswitch_manager \
     neutron.tests.unit.plugins.ml2.drivers.mech_sriov.agent.common.test_config \
     neutron.tests.unit.plugins.ml2.drivers.mech_sriov.agent.test_pci_lib \
     neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent.ovs_test_base \
     neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent.openflow.ovs_ofctl.test_br_phys \
     neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent.openflow.ovs_ofctl.test_br_int \
     neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent.openflow.ovs_ofctl.test_br_tun \
     neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent.test_ovs_tunnel \
     neutron.tests.unit.plugins.brocade.test_brocade_db \
     neutron.tests.unit.plugins.brocade.test_brocade_plugin \
     neutron.tests.unit.plugins.brocade.test_brocade_vlan \
     neutron.tests.unit.plugins.embrane.test_embrane_neutron_plugin \
     neutron.tests.unit.plugins.oneconvergence.test_nvsd_agent \
     neutron.tests.unit.plugins.oneconvergence.test_nvsd_plugin \
     neutron.tests.unit.plugins.oneconvergence.test_plugin_helper \
     neutron.tests.unit.plugins.oneconvergence.test_nvsdlib \
     neutron.tests.unit.plugins.ibm.test_sdnve_agent \
     neutron.tests.unit.plugins.ibm.test_sdnve_api \
     neutron.tests.unit.plugins.ml2.test_db \
     neutron.tests.unit.plugins.ml2.test_driver_context \
     neutron.tests.unit.plugins.ml2.test_port_binding \
     neutron.tests.unit.plugins.ml2.test_extension_driver_api \
     neutron.tests.unit.plugins.ml2.test_rpc \
     neutron.tests.unit.plugins.ml2.drivers.mlnx.test_mech_mlnx \
     neutron.tests.unit.plugins.ml2.drivers.openvswitch.mech_driver.test_mech_openvswitch \
     neutron.tests.unit.plugins.ml2.drivers.linuxbridge.mech_driver.test_mech_linuxbridge \
     neutron.tests.unit.plugins.ml2.drivers.linuxbridge.agent.test_linuxbridge_neutron_agent \
     neutron.tests.unit.plugins.ml2.drivers.base_type_tunnel \
     neutron.tests.unit.plugins.ml2.drivers.opendaylight.test_driver \
     neutron.tests.unit.plugins.ml2.drivers.ext_test \
     neutron.tests.unit.plugins.ml2.drivers.mech_sriov.mech_driver.test_mech_sriov_nic_switch \
     neutron.tests.unit.plugins.ml2.drivers.mech_fake_agent \
     neutron.tests.unit.plugins.ml2.drivers.test_type_vxlan \
     neutron.tests.unit.plugins.ml2.drivers.test_type_gre \
     neutron.tests.unit.plugins.ml2.drivers.test_helpers \
     neutron.tests.unit.plugins.ml2.drivers.test_type_local \
     neutron.tests.unit.plugins.ml2.drivers.mechanism_logger \
     neutron.tests.unit.plugins.ml2.drivers.test_type_flat \
     neutron.tests.unit.plugins.ml2.drivers.test_type_vlan \
     neutron.tests.unit.plugins.ml2.drivers.mechanism_test \
     neutron.tests.unit.plugins.ml2.drivers.l2pop.rpc_manager.l2population_rpc_base \
     neutron.tests.unit.plugins.ml2.extensions.fake_extension \
     neutron.tests.unit.plugins.ml2.drivers.l2pop.rpc_manager.test_l2population_rpc \
     neutron.tests.unit.plugins.ml2.drivers.l2pop.test_mech_driver \
     neutron.tests.unit.plugins.cisco.n1kv.test_n1kv_db \
     neutron.tests.unit.plugins.cisco.n1kv.fake_client \
     neutron.tests.unit.plugins.cisco.test_network_db \
     neutron.tests.unit.quota.test_resource \
     neutron.tests.unit.quota.test_resource_registry \
     neutron.tests.unit.scheduler.test_l3_agent_scheduler \
     neutron.tests.unit.scheduler.test_dhcp_agent_scheduler \
     neutron.tests.unit.db.test_agentschedulers_db \
     neutron.tests.unit.db.test_allowedaddresspairs_db \
     neutron.tests.unit.db.test_db_base_plugin_v2 \
     neutron.tests.unit.db.test_ipam_backend_mixin \
     neutron.tests.unit.db.test_l3_dvr_db \
     neutron.tests.unit.db.test_l3_hamode_db \
     neutron.tests.unit.db.test_migration \
     neutron.tests.unit.db.test_agents_db \
     neutron.tests.unit.db.quota.test_api \
     neutron.tests.unit.db.quota.test_driver \
     neutron.tests.unit.db.test_dvr_mac_db \
     neutron.tests.unit.db.test_securitygroups_db \
     neutron.tests.unit.debug.test_commands \
     neutron.tests.unit.tests.test_post_mortem_debug \
     neutron.tests.unit.tests.test_base \
     neutron.tests.unit.database_stubs \
     neutron.tests.unit.dummy_plugin \
     neutron.tests.unit.extension_stubs \
     neutron.tests.unit.testlib_api \
     neutron.tests.unit.api.test_api_common \
     neutron.tests.unit.api.rpc.handlers.test_dhcp_rpc \
     neutron.tests.unit.api.rpc.handlers.test_securitygroups_rpc \
     neutron.tests.unit.api.rpc.handlers.test_dvr_rpc \
     neutron.tests.unit.api.rpc.agentnotifiers.test_dhcp_rpc_agent_api \
     neutron.tests.unit.api.v2.test_attributes \
     neutron.tests.unit.agent.metadata.test_agent \
     neutron.tests.unit.agent.metadata.test_driver \
     neutron.tests.unit.agent.metadata.test_namespace_proxy \
     neutron.tests.unit.agent.test_rpc \
     neutron.tests.unit.agent.test_securitygroups_rpc \
     neutron.tests.unit.agent.l3.test_link_local_allocator \
     neutron.tests.unit.agent.l3.test_dvr_local_router \
     neutron.tests.unit.agent.l3.test_ha_router \
     neutron.tests.unit.agent.l3.test_legacy_router \<commit_msg>Enable py34 tests for pluggable ipam backend<commit_after>[tox]
envlist = docs,py27,py34,pep8
minversion = 1.8
skipsdist = True

[testenv]
setenv = VIRTUAL_ENV={envdir}
passenv = TRACE_FAILONLY
usedevelop = True
install_command = pip install -U {opts} {packages}
deps = -r{toxinidir}/requirements.txt
       -r{toxinidir}/test-requirements.txt
whitelist_externals = sh
commands =
  dsvm-functional: {toxinidir}/tools/deploy_rootwrap.sh {toxinidir} {envdir}/etc {envdir}/bin
  ostestr --regex '{posargs}'
# there is also secret magic in ostestr which lets you run in a fail only
# mode. To do this define the TRACE_FAILONLY environmental variable.

[testenv:api]
basepython = python2.7
setenv = {[testenv]setenv}
         OS_TEST_PATH=./neutron/tests/api
         TEMPEST_CONFIG_DIR={env:TEMPEST_CONFIG_DIR:/opt/stack/tempest/etc}
         OS_TEST_API_WITH_REST=1

[testenv:common]
# Fake job to define environment variables shared between dsvm/non-dsvm jobs
setenv = OS_TEST_TIMEOUT=180
commands = false

[testenv:dsvm]
# Fake job to define environment variables shared between dsvm jobs
setenv = OS_SUDO_TESTING=1
         OS_ROOTWRAP_CMD=sudo {envdir}/bin/neutron-rootwrap {envdir}/etc/neutron/rootwrap.conf
         OS_ROOTWRAP_DAEMON_CMD=sudo {envdir}/bin/neutron-rootwrap-daemon {envdir}/etc/neutron/rootwrap.conf
         OS_FAIL_ON_MISSING_DEPS=1
commands = false

[testenv:functional]
basepython = python2.7
setenv = {[testenv]setenv}
         {[testenv:common]setenv}
         OS_TEST_PATH=./neutron/tests/functional
deps =
  {[testenv]deps}
  -r{toxinidir}/neutron/tests/functional/requirements.txt

[testenv:dsvm-functional]
basepython = python2.7
setenv = {[testenv:functional]setenv}
         {[testenv:dsvm]setenv}
sitepackages=True
deps =
  {[testenv:functional]deps}

[testenv:fullstack]
setenv = {[testenv]setenv}
         {[testenv:common]setenv}
         OS_TEST_PATH=./neutron/tests/fullstack
deps =
  {[testenv]deps}
  -r{toxinidir}/neutron/tests/functional/requirements.txt

[testenv:dsvm-fullstack]
setenv = {[testenv:fullstack]setenv}
         {[testenv:dsvm]setenv}
sitepackages=True
deps =
  {[testenv:functional]deps}

[tox:jenkins]
sitepackages = True
downloadcache = ~/cache/pip

[testenv:pep8]
basepython = python2.7
deps =
  {[testenv]deps}
commands=
  # If it is easier to add a check via a shell script, consider adding it in this file
  sh ./tools/misc-sanity-checks.sh
  {toxinidir}/tools/check_unit_test_structure.sh
  # Checks for coding and style guidelines
  flake8
  sh ./tools/coding-checks.sh --pylint '{posargs}'
  neutron-db-manage --config-file neutron/tests/etc/neutron.conf check_migration
whitelist_externals =
  sh
  bash

[testenv:cover]
basepython = python2.7
commands =
  python setup.py testr --coverage --testr-args='{posargs}'

[testenv:venv]
commands = {posargs}

[testenv:docs]
commands = sphinx-build -W -b html doc/source doc/build/html

[testenv:py34]
commands = python setup.py test --testr-args='{posargs: \
     neutron.tests.unit.test_context \
     neutron.tests.unit.services.metering.drivers.test_iptables \
     neutron.tests.unit.services.metering.agents.test_metering_agent \
     neutron.tests.unit.services.test_provider_configuration \
     neutron.tests.unit.plugins.ml2.drivers.mech_sriov.agent.test_sriov_nic_agent \
     neutron.tests.unit.plugins.ml2.drivers.mech_sriov.agent.test_eswitch_manager \
     neutron.tests.unit.plugins.ml2.drivers.mech_sriov.agent.common.test_config \
     neutron.tests.unit.plugins.ml2.drivers.mech_sriov.agent.test_pci_lib \
     neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent.ovs_test_base \
     neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent.openflow.ovs_ofctl.test_br_phys \
     neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent.openflow.ovs_ofctl.test_br_int \
     neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent.openflow.ovs_ofctl.test_br_tun \
     neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent.test_ovs_tunnel \
     neutron.tests.unit.plugins.brocade.test_brocade_db \
     neutron.tests.unit.plugins.brocade.test_brocade_plugin \
     neutron.tests.unit.plugins.brocade.test_brocade_vlan \
     neutron.tests.unit.plugins.embrane.test_embrane_neutron_plugin \
     neutron.tests.unit.plugins.oneconvergence.test_nvsd_agent \
     neutron.tests.unit.plugins.oneconvergence.test_nvsd_plugin \
     neutron.tests.unit.plugins.oneconvergence.test_plugin_helper \
     neutron.tests.unit.plugins.oneconvergence.test_nvsdlib \
     neutron.tests.unit.plugins.ibm.test_sdnve_agent \
     neutron.tests.unit.plugins.ibm.test_sdnve_api \
     neutron.tests.unit.plugins.ml2.test_db \
     neutron.tests.unit.plugins.ml2.test_driver_context \
     neutron.tests.unit.plugins.ml2.test_port_binding \
     neutron.tests.unit.plugins.ml2.test_extension_driver_api \
     neutron.tests.unit.plugins.ml2.test_rpc \
     neutron.tests.unit.plugins.ml2.drivers.mlnx.test_mech_mlnx \
     neutron.tests.unit.plugins.ml2.drivers.openvswitch.mech_driver.test_mech_openvswitch \
     neutron.tests.unit.plugins.ml2.drivers.linuxbridge.mech_driver.test_mech_linuxbridge \
     neutron.tests.unit.plugins.ml2.drivers.linuxbridge.agent.test_linuxbridge_neutron_agent \
     neutron.tests.unit.plugins.ml2.drivers.base_type_tunnel \
     neutron.tests.unit.plugins.ml2.drivers.opendaylight.test_driver \
     neutron.tests.unit.plugins.ml2.drivers.ext_test \
     neutron.tests.unit.plugins.ml2.drivers.mech_sriov.mech_driver.test_mech_sriov_nic_switch \
     neutron.tests.unit.plugins.ml2.drivers.mech_fake_agent \
     neutron.tests.unit.plugins.ml2.drivers.test_type_vxlan \
     neutron.tests.unit.plugins.ml2.drivers.test_type_gre \
     neutron.tests.unit.plugins.ml2.drivers.test_helpers \
     neutron.tests.unit.plugins.ml2.drivers.test_type_local \
     neutron.tests.unit.plugins.ml2.drivers.mechanism_logger \
     neutron.tests.unit.plugins.ml2.drivers.test_type_flat \
     neutron.tests.unit.plugins.ml2.drivers.test_type_vlan \
     neutron.tests.unit.plugins.ml2.drivers.mechanism_test \
     neutron.tests.unit.plugins.ml2.drivers.l2pop.rpc_manager.l2population_rpc_base \
     neutron.tests.unit.plugins.ml2.extensions.fake_extension \
     neutron.tests.unit.plugins.ml2.drivers.l2pop.rpc_manager.test_l2population_rpc \
     neutron.tests.unit.plugins.ml2.drivers.l2pop.test_mech_driver \
     neutron.tests.unit.plugins.cisco.n1kv.test_n1kv_db \
     neutron.tests.unit.plugins.cisco.n1kv.fake_client \
     neutron.tests.unit.plugins.cisco.test_network_db \
     neutron.tests.unit.quota.test_resource \
     neutron.tests.unit.quota.test_resource_registry \
     neutron.tests.unit.scheduler.test_l3_agent_scheduler \
     neutron.tests.unit.scheduler.test_dhcp_agent_scheduler \
     neutron.tests.unit.db.test_agentschedulers_db \
     neutron.tests.unit.db.test_allowedaddresspairs_db \
     neutron.tests.unit.db.test_db_base_plugin_v2 \
     neutron.tests.unit.db.test_ipam_backend_mixin \
     neutron.tests.unit.db.test_l3_dvr_db \
     neutron.tests.unit.db.test_l3_hamode_db \
     neutron.tests.unit.db.test_ipam_pluggable_backend \
     neutron.tests.unit.db.test_migration \
     neutron.tests.unit.db.test_agents_db \
     neutron.tests.unit.db.quota.test_api \
     neutron.tests.unit.db.quota.test_driver \
     neutron.tests.unit.db.test_dvr_mac_db \
     neutron.tests.unit.db.test_securitygroups_db \
     neutron.tests.unit.debug.test_commands \
     neutron.tests.unit.tests.test_post_mortem_debug \
     neutron.tests.unit.tests.test_base \
     neutron.tests.unit.database_stubs \
     neutron.tests.unit.dummy_plugin \
     neutron.tests.unit.extension_stubs \
     neutron.tests.unit.testlib_api \
     neutron.tests.unit.api.test_api_common \
     neutron.tests.unit.api.rpc.handlers.test_dhcp_rpc \
     neutron.tests.unit.api.rpc.handlers.test_securitygroups_rpc \
     neutron.tests.unit.api.rpc.handlers.test_dvr_rpc \
     neutron.tests.unit.api.rpc.agentnotifiers.test_dhcp_rpc_agent_api \
     neutron.tests.unit.api.v2.test_attributes \
     neutron.tests.unit.agent.metadata.test_agent \
     neutron.tests.unit.agent.metadata.test_driver \
     neutron.tests.unit.agent.metadata.test_namespace_proxy \
     neutron.tests.unit.agent.test_rpc \
     neutron.tests.unit.agent.test_securitygroups_rpc \
     neutron.tests.unit.agent.l3.test_link_local_allocator \
     neutron.tests.unit.agent.l3.test_dvr_local_router \
     neutron.tests.unit.agent.l3.test_ha_router \
     neutron.tests.unit.agent.l3.test_legacy_router \
{'fraction_non_alphanumeric': 0.10984669811320755, 'fraction_numerical': 0.009433962264150943, 'mean_word_length': 3.808902750212645, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '542534', 'n_tokens_mistral': 6474, 'n_tokens_neox': 6295, 'n_words': 613}