Fix bugs in ansible-test units command. (#24044)

* Handle old versions of coverage.
* Handle old versions of setuptools.
* Detect python version for docker/remote units.
* Add sanity override for test constraints.
pull/24049/head
Matt Clay 7 years ago committed by GitHub
parent 51e3390333
commit d662f6f0db

@ -16,6 +16,7 @@ from lib.executor import (
SubprocessError,
ShellConfig,
SanityConfig,
UnitsConfig,
create_shell_command,
)
@ -201,6 +202,10 @@ def delegate_docker(args, exclude, require):
docker_exec(args, test_id, ['mkdir', '/root/ansible'])
docker_exec(args, test_id, ['tar', 'oxzf', '/root/ansible.tgz', '-C', '/root/ansible'])
# docker images are only expected to have a single python version available
if isinstance(args, UnitsConfig) and not args.python:
cmd += ['--python', 'default']
try:
docker_exec(args, test_id, cmd, options=cmd_options)
finally:
@ -356,6 +361,10 @@ def delegate_remote(args, exclude, require):
if not args.allow_destructive:
cmd.append('--allow-destructive')
# remote instances are only expected to have a single python version available
if isinstance(args, UnitsConfig) and not args.python:
cmd += ['--python', 'default']
manage = ManagePosixCI(core_ci)
manage.setup()

@ -477,6 +477,9 @@ class EnvironmentConfig(CommonConfig):
self.requirements = args.requirements # type: bool
if self.python == 'default':
self.python = '.'.join(str(i) for i in sys.version_info[:2])
self.python_version = self.python or '.'.join(str(i) for i in sys.version_info[:2])
self.delegate = self.tox or self.docker or self.remote

@ -12,5 +12,6 @@ pytest-xdist
python-memcached
pyyaml
redis
setuptools > 0.6 # pytest-xdist installed via requirements does not work with very old setuptools (sanity_ok)
unittest2 ; python_version < '2.7'
netaddr

@ -241,7 +241,7 @@ def parse_args():
units.add_argument('--python',
metavar='VERSION',
choices=SUPPORTED_PYTHON_VERSIONS,
choices=SUPPORTED_PYTHON_VERSIONS + ('default',),
help='python version: %s' % ', '.join(SUPPORTED_PYTHON_VERSIONS))
units.add_argument('--collect-only',

@ -2,6 +2,7 @@
constraints=$(
grep '.' test/runner/requirements/*.txt \
| grep -v '(sanity_ok)$' \
| sed 's/ *;.*$//; s/ #.*$//' \
| grep -v '/constraints.txt:' \
| grep '[<>=]'

@ -7,6 +7,11 @@ try:
except ImportError:
coverage = None
try:
test = coverage.Coverage
except AttributeError:
coverage = None
def pytest_configure():
if not coverage:

Loading…
Cancel
Save