@ -139,10 +139,6 @@ def delegate_command(args, exclude, require, integration_targets):
delegate_venv ( args , exclude , require , integration_targets )
return True
if args . tox :
delegate_tox ( args , exclude , require , integration_targets )
return True
if args . docker :
delegate_docker ( args , exclude , require , integration_targets )
return True
@ -154,71 +150,6 @@ def delegate_command(args, exclude, require, integration_targets):
return False
def delegate_tox ( args , exclude , require , integration_targets ) :
"""
: type args : EnvironmentConfig
: type exclude : list [ str ]
: type require : list [ str ]
: type integration_targets : tuple [ IntegrationTarget ]
"""
if args . python :
versions = ( args . python_version , )
if args . python_version not in SUPPORTED_PYTHON_VERSIONS :
raise ApplicationError ( ' tox does not support Python version %s ' % args . python_version )
else :
versions = SUPPORTED_PYTHON_VERSIONS
if args . httptester :
needs_httptester = sorted ( target . name for target in integration_targets if ' needs/httptester/ ' in target . aliases )
if needs_httptester :
display . warning ( ' Use --docker or --remote to enable httptester for tests marked " needs/httptester " : %s ' % ' , ' . join ( needs_httptester ) )
options = {
' --tox ' : args . tox_args ,
' --tox-sitepackages ' : 0 ,
}
for version in versions :
tox = [ ' tox ' , ' -c ' , os . path . join ( ANSIBLE_TEST_DATA_ROOT , ' tox.ini ' ) , ' -e ' , ' py ' + version . replace ( ' . ' , ' ' ) ]
if args . tox_sitepackages :
tox . append ( ' --sitepackages ' )
tox . append ( ' -- ' )
cmd = generate_command ( args , None , ANSIBLE_BIN_PATH , data_context ( ) . content . root , options , exclude , require )
if not args . python :
cmd + = [ ' --python ' , version ]
# newer versions of tox do not support older python versions and will silently fall back to a different version
# passing this option will allow the delegated ansible-test to verify it is running under the expected python version
# tox 3.0.0 dropped official python 2.6 support: https://tox.readthedocs.io/en/latest/changelog.html#v3-0-0-2018-04-02
# tox 3.1.3 is the first version to support python 3.8 and later: https://tox.readthedocs.io/en/latest/changelog.html#v3-1-3-2018-08-03
# tox 3.1.3 appears to still work with python 2.6, making it a good version to use when supporting all python versions we use
# virtualenv 16.0.0 dropped python 2.6 support: https://virtualenv.pypa.io/en/latest/changes/#v16-0-0-2018-05-16
cmd + = [ ' --check-python ' , version ]
if isinstance ( args , TestConfig ) :
if args . coverage and not args . coverage_label :
cmd + = [ ' --coverage-label ' , ' tox- %s ' % version ]
env = common_environment ( )
# temporary solution to permit ansible-test delegated to tox to provision remote resources
optional = (
' SHIPPABLE ' ,
' SHIPPABLE_BUILD_ID ' ,
' SHIPPABLE_JOB_NUMBER ' ,
)
env . update ( pass_vars ( required = [ ] , optional = optional ) )
run_command ( args , tox + cmd , env = env )
def delegate_venv ( args , # type: EnvironmentConfig
exclude , # type: t.List[str]
require , # type: t.List[str]