On a fresh checkout of the source repository, running tox fails on its first run with the error below. I'm not familiar with the stages tox performs (and they seem poorly documented), but the "install" step does not actually seem to install the source into the virtualenv for some reason.
Reproducible on Ubuntu 16.04 and CentOS 7, in both cases with Python 2.7 as the default system python version. The same thing happens for all the other environments in tox.ini as well.
vmuser@vm:~/pyjks$ rm -rf .tox/; tox -v -e py27
using tox.ini: /home/vmuser/pyjks/tox.ini
using tox-2.3.1 from /usr/local/lib/python2.7/dist-packages/tox/__init__.pyc
GLOB sdist-make: /home/vmuser/pyjks/setup.py
/home/vmuser/pyjks$ /usr/bin/python /home/vmuser/pyjks/setup.py sdist --formats=zip --dist-dir /home/vmuser/pyjks/.tox/dist >/home/vmuser/pyjks/.tox/log/tox-0.log
py27 create: /home/vmuser/pyjks/.tox/py27
/home/vmuser/pyjks/.tox$ /usr/bin/python -m virtualenv --python /usr/bin/python2.7 py27 >/home/vmuser/pyjks/.tox/py27/log/py27-0.log
py27 installdeps: -rrequirements-test.txt
/home/vmuser/pyjks$ /home/vmuser/pyjks/.tox/py27/bin/pip install -rrequirements-test.txt >/home/vmuser/pyjks/.tox/py27/log/py27-1.log
py27 inst: /home/vmuser/pyjks/.tox/dist/pyjks-0.5.1.dev0.zip
/home/vmuser/pyjks$ /home/vmuser/pyjks/.tox/py27/bin/pip install /home/vmuser/pyjks/.tox/dist/pyjks-0.5.1.dev0.zip >/home/vmuser/pyjks/.tox/py27/log/py27-2.log
/home/vmuser/pyjks$ /home/vmuser/pyjks/.tox/py27/bin/pip freeze >/home/vmuser/pyjks/.tox/py27/log/py27-3.log
py27 installed: javaobj-py3==0.1.4,pluggy==0.3.1,py==1.4.31,pyasn1==0.1.7,pyasn1-modules==0.0.8,pycrypto==2.6.1,pyjks==0.5.1.dev0,pytest==2.9.2,tox==2.3.1,twofish==0.3.0,virtualenv==15.0.2
py27 runtests: PYTHONHASHSEED='2807748729'
py27 runtests: commands[0] | py.test --doctest-modules /home/vmuser/pyjks/.tox/py27/lib/python2.7/site-packages/jks /home/vmuser/pyjks/tests
/home/vmuser/pyjks/.tox$ /home/vmuser/pyjks/.tox/py27/bin/py.test --doctest-modules /home/vmuser/pyjks/.tox/py27/lib/python2.7/site-packages/jks /home/vmuser/pyjks/tests
================================================================== test session starts ===================================================================
platform linux2 -- Python 2.7.12, pytest-2.9.2, py-1.4.31, pluggy-0.3.1
rootdir: /home/vmuser/pyjks, inifile:
============================================================== no tests ran in 0.00 seconds ==============================================================
ERROR: file not found: /home/vmuser/pyjks/.tox/py27/lib/python2.7/site-packages/jks
ERROR: InvocationError: '/home/vmuser/pyjks/.tox/py27/bin/py.test --doctest-modules /home/vmuser/pyjks/.tox/py27/lib/python2.7/site-packages/jks /home/vmuser/pyjks/tests'
________________________________________________________________________ summary _________________________________________________________________________
ERROR: py27: commands failed
The following line from the output suggests that tox is installing the source distribution in the virtual env:
/home/vmuser/pyjks$ /home/vmuser/pyjks/.tox/py27/bin/pip install /home/vmuser/pyjks/.tox/dist/pyjks-0.5.1.dev0.zip >/home/vmuser/pyjks/.tox/py27/log/py27-2.log
vmuser@vm:~/pyjks$ (. .tox/py27/bin/activate; pip freeze -l)
javaobj-py3==0.1.4
pluggy==0.3.1
py==1.4.31
pyasn1==0.1.7
pyasn1-modules==0.0.8
pycrypto==2.6.1
pytest==2.9.2
tox==2.3.1
twofish==0.3.0
virtualenv==15.0.2
vmuser@vm:~/pyjks$ python --version
Python 2.7.12
vmuser@vm:~/pyjks$ tox --version
2.3.1 imported from /usr/local/lib/python2.7/dist-packages/tox/__init__.pyc
vmuser@vm:~/pyjks$ virtualenv --version
15.0.3
vmuser@vm:~/pyjks$ cat /home/vmuser/pyjks/.tox/py27/log/py27-2.log
actionid: py27
msg: installpkg
cmdargs: [local('/home/vmuser/pyjks/.tox/py27/bin/pip'), 'install', '/home/vmuser/pyjks/.tox/dist/pyjks-0.5.1.dev0.zip']
env: {'LC_NUMERIC': 'en_US.UTF-8', 'QT_QPA_PLATFORMTHEME': 'appmenu-qt5', 'XDG_GREETER_DATA_DIR': '/var/lib/lightdm-data/vmuser', 'GNOME_DESKTOP_SESSION_ID': 'this-is-deprecated', 'LC_MEASUREMENT': 'en_US.UTF-8', 'UPSTART_EVENTS': 'xsession started', 'XDG_CURRENT_DESKTOP': 'Unity', 'LC_PAPER': 'en_US.UTF-8', 'TMOUT': '0', 'QT_IM_MODULE': 'ibus', 'LOGNAME': 'vmuser', 'USER': 'vmuser', 'PATH': '/home/vmuser/pyjks/.tox/py27/bin:/home/vmuser/local/bin:/home/vmuser/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin', 'XDG_VTNR': '7', 'GNOME_KEYRING_CONTROL': '', 'DISPLAY': ':0', 'LANG': 'en_US.UTF-8', 'TERM': 'xterm-256color', 'SHELL': '/bin/bash', 'XDG_SESSION_PATH': '/org/freedesktop/DisplayManager/Session0', 'XAUTHORITY': '/home/vmuser/.Xauthority', 'LANGUAGE': 'en_US', 'INSTANCE': '', 'LC_MONETARY': 'en_US.UTF-8', 'QT_LINUX_ACCESSIBILITY_ALWAYS_ON': '1', 'MANDATORY_PATH': '/usr/share/gconf/ubuntu.mandatory.path', 'QT_ACCESSIBILITY': '1', 'VIRTUAL_ENV': '/home/vmuser/pyjks/.tox/py27', 'UPSTART_INSTANCE': '', 'COMPIZ_CONFIG_PROFILE': 'ubuntu', 'WINDOWID': '56959269', 'MANPATH': '/home/vmuser/local/share/man:/home/vmuser/local/share/man:', 'CLUTTER_IM_MODULE': 'xim', 'XMODIFIERS': '@im=ibus', 'PYTHONHASHSEED': '3183146666', 'GPG_AGENT_INFO': '/home/vmuser/.gnupg/S.gpg-agent:0:1', 'HOME': '/home/vmuser', 'QT4_IM_MODULE': 'xim', 'GTK2_MODULES': 'overlay-scrollbar', 'XDG_SESSION_DESKTOP': 'ubuntu', 'COMPIZ_BIN_PATH': '/usr/bin/', 'XDG_RUNTIME_DIR': '/run/user/1000', 'LC_IDENTIFICATION': 'en_US.UTF-8', 'LC_ADDRESS': 'en_US.UTF-8', 'PYTHONPATH': '/home/vmuser/local/lib64/python2.6/site-packages:/home/vmuser/local/lib64/python2.6/site-packages:', 'SESSIONTYPE': 'gnome-session', 'SESSION': 'ubuntu', 'VTE_VERSION': '4205', 'SSH_AUTH_SOCK': '/run/user/1000/keyring/ssh', 'GDMSESSION': 'ubuntu', 'IM_CONFIG_PHASE': '1', 'UPSTART_JOB': 'unity7', 'TMUX': '/tmp/tmux-1000/default,5533,3', 'XDG_DATA_DIRS': '/usr/share/ubuntu:/usr/share/gnome:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop', 'XDG_SEAT_PATH': '/org/freedesktop/DisplayManager/Seat0', 'XDG_SESSION_ID': 'c1', 'DBUS_SESSION_BUS_ADDRESS': 'unix:abstract=/tmp/dbus-QLVgZX6JqO', '_': '/usr/local/bin/tox', 'DEFAULTS_PATH': '/usr/share/gconf/ubuntu.default.path', 'GTK_IM_MODULE': 'ibus', 'DESKTOP_SESSION': 'ubuntu', 'UPSTART_SESSION': 'unix:abstract=/com/ubuntu/upstart-session/1000/4389', 'XDG_CONFIG_DIRS': '/etc/xdg/xdg-ubuntu:/usr/share/upstart/xdg:/etc/xdg', 'GNOME_KEYRING_PID': '', 'XDG_SESSION_TYPE': 'x11', 'TERMINFO': '/home/vmuser/.terminfo', 'GDM_LANG': 'en_US', 'LC_TELEPHONE': 'en_US.UTF-8', 'GTK_MODULES': 'gail:atk-bridge:unity-gtk-module', 'PAPERSIZE': 'letter', 'SHLVL': '3', 'PWD': '/home/vmuser/pyjks', 'JOB': 'unity-settings-daemon', 'SWT_GTK3': '0', 'LC_NAME': 'en_US.UTF-8', 'LC_TIME': 'en_US.UTF-8', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:', 'TMUX_PANE': '%54', 'XDG_SEAT': 'seat0'}
Processing ./.tox/dist/pyjks-0.5.1.dev0.zip
Requirement already satisfied (use --upgrade to upgrade): pyjks==0.5.1.dev0 from file:///home/vmuser/pyjks/.tox/dist/pyjks-0.5.1.dev0.zip in /home/vmuser/pyjks
Requirement already satisfied (use --upgrade to upgrade): pyasn1 in ./.tox/py27/lib/python2.7/site-packages (from pyjks==0.5.1.dev0)
Requirement already satisfied (use --upgrade to upgrade): pyasn1_modules in ./.tox/py27/lib/python2.7/site-packages (from pyjks==0.5.1.dev0)
Requirement already satisfied (use --upgrade to upgrade): javaobj-py3 in ./.tox/py27/lib/python2.7/site-packages (from pyjks==0.5.1.dev0)
Requirement already satisfied (use --upgrade to upgrade): pycrypto in ./.tox/py27/lib/python2.7/site-packages (from pyjks==0.5.1.dev0)
Requirement already satisfied (use --upgrade to upgrade): twofish in ./.tox/py27/lib/python2.7/site-packages (from pyjks==0.5.1.dev0)
Building wheels for collected packages: pyjks
Running setup.py bdist_wheel for pyjks: started
Running setup.py bdist_wheel for pyjks: finished with status 'done'
Stored in directory: /home/vmuser/.cache/pip/wheels/23/00/59/df3c23a752fa609874cf336943df85d00b2175fd94ee002d45
Successfully built pyjks