Use pytest for running tests
The CI runner uses pytest, but the manage.sh uses a manual test runner. Use pytest everwhere because this means you don't have to maintain the init.py and tests.py files, and local tests will always run the same tests as the CI pipeline.