tox >=2.0 fails with & in path

Issue #252 on hold
Gilles Dartiguelongue created an issue

Starting with tox 2.0, tox fails when trying to launch commands with path containing & :

$ /var/lib/jenkins/shiningpanda/jobs/3d4c850b/tools/bin/python -c "import tox; tox.cmdline();" -c tox.ini -e py27
GLOB sdist-make: /opt/jenkins/workspace/ocs.conf/TOXENV/py27/label_exp/armhf&&python/setup.py
py27 create: /opt/jenkins/workspace/ocs.conf/TOXENV/py27/label_exp/armhf&&python/.tox/py27
py27 installdeps: nose, coverage, pylint, pep8
py27 inst: /opt/jenkins/workspace/ocs.conf/TOXENV/py27/label_exp/armhf&&python/.tox/dist/ocs.conf-0.29.1.zip
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/var/lib/jenkins/shiningpanda/jobs/3d4c850b/tools/local/lib/python2.7/site-packages/tox/session.py", line 39, in main
    retcode = Session(config).runcommand()
  File "/var/lib/jenkins/shiningpanda/jobs/3d4c850b/tools/local/lib/python2.7/site-packages/tox/session.py", line 367, in runcommand
    return self.subcommand_test()
  File "/var/lib/jenkins/shiningpanda/jobs/3d4c850b/tools/local/lib/python2.7/site-packages/tox/session.py", line 534, in subcommand_test
    output = py.process.cmdexec("%s freeze" % (pip))
  File "/var/lib/jenkins/shiningpanda/jobs/3d4c850b/tools/local/lib/python2.7/site-packages/py/_process/cmdexec.py", line 28, in cmdexec
    raise ExecutionFailed(status, status, cmd, out, err)
py.process.cmdexec.Error: ExecutionFailed: 127  /opt/jenkins/workspace/ocs.conf/TOXENV/py27/label_exp/armhf&&python/.tox/py27/bin/pip freeze
/bin/sh: 1: /opt/jenkins/workspace/ocs.conf/TOXENV/py27/label_exp/armhf: not found

While this is imho a problem with py/pytest not taking care of escaping strings passed to shell it is a problem specifically happening with tox >=2.0.

We need this to work for supporting label expressions in jenkins jobs and the jenkins tox plugin does not allow restricting the version it uses.

Comments (5)

  1. Log in to comment