Adopt tox and pytest
Blocked by #2111
tox now suitable (and recommended) for running unit tests across several environments at once with linting and coverage reporting.
Will be adopted by GitHub Actions later to remedy lost functionality from Poetry adoption.
New PR action set up (also has better coverage) Action also set to run for each push to master
Tests py 3.8 - 3.12 on nix. Windows can be added shortly but there's a bug in one of the tests on Windows.
Will address scheduled actions later.
And for @sdushantha :
test_validate_manifest_against_remote_schema validates the data.json in the pushed commitish against the remote schema, and will fail if it doesn't match. This would alert to situations like what happened the other week, where the data.json broke existing clients.
Windows has been added back with path normalization and a special command prefix, and Mac has been added with sorting the problematic assertion.
Tests on Python 3.8-3.12 on Linux, Windows, and Mac.
Rebased to #2111 feature/pyproj to fix conflicts Can be merged as a standalone to include both changes or one after another for the same result