Subprocesses in test suits are a common occurence. coverage.py has an execellent way to measure their coverage but the set-up instructions are quite scary: http://nedbatchelder.com/code/coverage/subprocess.html
Also in the time of tox, continuous integration, virtualizations and containerizations, the manual process is quite beside the point.
What could we do to completely automate the described process?
There is an article by Ned http://nedbatchelder.com/blog/201001/running_code_at_python_startup.html
and a suggestion from @geoffbache
# sitecustomize.py import os, sys currDir = os.path.dirname(__file__) sys.path.remove(currDir) del sys.modules["sitecustomize"] try: import sitecustomize finally: sys.path.insert(0, currDir)
That script fails on my machine (MacOS, Python 2.7) with
Traceback (most recent call last): File "/Users/tibor/.virtualenvs/tmon/bin/../lib/python2.7/site.py", line 703, in <module> main() File "/Users/tibor/.virtualenvs/tmon/bin/../lib/python2.7/site.py", line 694, in main execsitecustomize() File "/Users/tibor/.virtualenvs/tmon/bin/../lib/python2.7/site.py", line 548, in execsitecustomize import sitecustomize File "/Users/tibor/tmonworkspace/testmon/sitecustomize.py", line 8, in <module> sys.path.insert(0, currDir) AttributeError: 'NoneType' object has no attribute 'path'
But I would hope that it's the best approach.