Otherwise, if a virtualenv is active on top of conda base env (e.g. when
running py37-first_startup tox test in TravisCI), the wrong `activate`
script is sourced.
Also fix `CONDA_PREFIX` environment variable definition when using a shell
not supported by conda.
Since at least version 3.7.4 of the `python` package from the `defaults`
conda channel, `python -V` doesn't reveal its origin any more.
Also some fixes suggested by `shellcheck`.
- Allow specifying Python to use to create virtualenv using GALAXY_PYTHON
environment variable.
- Integrate Python support docs from https://galaxyproject.org/admin/python/
- Update virtualenv installation to use v16.7.9
Otherwise under Python2 the following exception is raised:
```
$ python2
Python 2.7.17 (default, Nov 7 2019, 10:07:09)
[GCC 7.4.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import io
>>> with io.open('foo.txt', 'w', encoding='utf-8') as fh:
... fh.write('foo')
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
TypeError: write() argument 1 must be unicode, not str
```
- enables docker destination for interactivetool tests
- fixes a wrong argument in entrypoint management
- fixes the test setup that targeted a previous iteration (which was
still called realtimetools)
- prevents deleting the working directory before python has a chance to
start the container monitor (that's the sleep command)
- fixes some odd interactive tool test assertions
- uses unicode arguments in key_type_token_mapping.py.
uwsgi arguments are always passed as bytestrings.
Split test/base into lib/galaxy_test/base and lib/galaxy_test/driver. Dividing things on whether they import galaxy-app code or not - with the goal of a galaxy-test-base package that doesn't depend on galaxy-app and a galaxy-test-driver package that does.
I've been refactoring around this division for a long time. Certain tests (namely the integration tests) always need to bootstrap Galaxy - but the API tests and the Selenium tests should be installable and runnable without Galaxy in the Python environment. So future galaxy-test-api and galaxy-test-selenium packages should have only an optional dependency on galaxy-test-driver.
Properly sturcturing these namespaces is a precursor for real packages on PyPI, clean separation of the tool shed testing code, and cleans up all the flake8 noqa hacks in test/.
Fix the following exception:
```
TypeError: not all arguments converted during string formatting
```
Also, make other log format strings more consistent: %d for numeric object IDs.