Goals:
- Replace direct database access with pydantic typed API requests.
- Replace Twill with playwright.
- Eliminate access to the Galaxy UI in the tests - the tests should assume API access from the installing party.
pytest-playwright requires small bits of #13909.
This is a worthy project that could let us remove a bunch of deprecated stuff from the Galaxy admin controllers and a bunch of mako stuff that is unused and could be used to test PRs like #14609 (which prompted me to do this) but I'm anxious about growing emotionally attached to code I want to remove and I'm worried about losing track of which helpers are required for Planemo/Emphemeris/Galaxy and which helpers are just being used to test the tool shed.
so we will be able to drop Python 3.7 support for the rest of the code base.
Add a new `test_galaxy_packages_for_pulsar` tox environment and modify the
`test.sh` script so that when the `--for-pulsar` argument is passed:
- only the 4 packages used by Pulsar are tested
- mypy checks are skipped
- unit tests don't skip the tests marked with
`external_dependency_management` (i.e. those conda/container-related).
Also:
- Add missing pydantic requirement to the galaxy-objectstore package
- Allow passing GALAXY_CONDA_PYTHON_VERSION environment variable to
the startup script to specify the Python version to use when
creating the `_galaxy_` conda environment.
- Some Shellcheck fixes.
- Allow passing GALAXY_CONDA_PYTHON_VERSION environment variable to
the startup script to specify the Python version to use when
creating the `_galaxy_` conda environment.
- Some Shellcheck fixes.
Should help with nodeenv failing in CI tests, e.g.
```
Installing node into /home/runner/work/galaxy/galaxy/galaxy root/.tox/unit-coverage with nodeenv.
* Install prebuilt node (18.12.1) .Incomplete read while readingfrom https://nodejs.org/download/release/v18.12.1/node-v18.12.1-linux-x64.tar.gz
.
Traceback (most recent call last):
File "/home/runner/work/galaxy/galaxy/galaxy root/.tox/unit-coverage/bin/nodeenv", line 10, in <module>
sys.exit(main())
File "/home/runner/work/galaxy/galaxy/galaxy root/.tox/unit-coverage/lib/python3.7/site-packages/nodeenv.py", line 1104, in main
create_environment(env_dir, args)
File "/home/runner/work/galaxy/galaxy/galaxy root/.tox/unit-coverage/lib/python3.7/site-packages/nodeenv.py", line 980, in create_environment
install_node(env_dir, src_dir, args)
File "/home/runner/work/galaxy/galaxy/galaxy root/.tox/unit-coverage/lib/python3.7/site-packages/nodeenv.py", line 739, in install_node
install_node_wrapped(env_dir, src_dir, args)
File "/home/runner/work/galaxy/galaxy/galaxy root/.tox/unit-coverage/lib/python3.7/site-packages/nodeenv.py", line 762, in install_node_wrapped
download_node_src(node_url, src_dir, args)
File "/home/runner/work/galaxy/galaxy/galaxy root/.tox/unit-coverage/lib/python3.7/site-packages/nodeenv.py", line 602, in download_node_src
with ctx as archive:
File "/opt/hostedtoolcache/Python/3.7.16/x64/lib/python3.7/contextlib.py", line 112, in __enter__
return next(self.gen)
File "/home/runner/work/galaxy/galaxy/galaxy root/.tox/unit-coverage/lib/python3.7/site-packages/nodeenv.py", line 573, in tarfile_open
tf = tarfile.open(*args, **kwargs)
File "/opt/hostedtoolcache/Python/3.7.16/x64/lib/python3.7/tarfile.py", line 1573, in open
saved_pos = fileobj.tell()
AttributeError: 'bytes' object has no attribute 'tell'
```
from https://github.com/galaxyproject/galaxy/actions/runs/4883207488/jobs/8714237674?pr=16036