selects tests affected by changed files and methods
Project description
Preface
This is the closed-source Testmon. The repo has a couple of subprojects:
-
testmon_dev: the server, it has normal change code/execute cycle which we're used to when developing in Python. open source testmon (OSPT) is generated from here (via preprocess). Main package is called testmon_dev, and it is installed via
pip install -r requirements/prod.txt -e .
-
Open Source Testmon (OSPT): This is the opensource pytest-testmon released to PYPI, attracts new users. It's generated from testmon-dev, comments and type hints are stripped out. Tests are also generated and executed via tox for a couple of combinations of dependencies and python versions, but they are not published. Release process of OSPT
We generate pytest-testmon by running preprocess on the source.
preprocess
template directives are in Python comments so testmon_dev can be executed as is and is the template for
pytest-testmon.
Process
Installation and tests
Have a look at .github/workflows/tests.yml to see how CI is set up and what are the prerequisites. (e.g. Python 3.7 and 3.11)
You should clone this repo (https://github.com/tarpas/testmon-dev/) and 2 additional ones. If you only clone testmon-dev initially you can still build, but you'll have to come back to this set-up when you will want to push to one of the other repos.
git clone https://github.com/tarpas/testmon-dev/
git clone https://github.com/tarpas/pytest-testmon/
git clone https://github.com/tarpas/testmon.org/
git clone https://github.com/tarpas/testmon_web/
The build in testmon-dev also generates files into other directories: pytest-testmon (open source) and testmon.org ( pelican site source) on the same level.
cd testmon-dev
# create and activate virtualenv (e.g. python -m venv .venv)
pip install -r requirements/prod.txt -e .
# increase ulimit if needed
ulimit -n 1024
# run tests
pytest
# build pytest-testmon and run it's test suite (tox)
python tools/build/build.py testmon
cd ../pytest-testmon
tox
Contributing
- We use pre-commit so run
pre-commit install
andpre-commit install-hooks
before commiting. - Run tests (pytest).
- Build pytest-testmon
python tools/build/build.py testmon
and run it's test suitecd ..;cd pytest-testmon;tox
See also process
Data model
Current denormalized schema (client):
Described in file 'docs/schema_client.md'
Current denormalized schema (client):
Described in file 'docs/schema_server.md'
runtime environments
- development (and build, test, lint)
- local dogfooding is possible (running the test suite with pytest —testmon)
- CI - GHA
- client installations in the wild - open source pytest-tesmon, distributed via PYPI without comments and types. Tested with comprehensive test suite which is executed in many combinations of dependencies via tox and GHA(windows/linux), but the tests are not published
- server
- performance regression tests via valgrind cachegrind (see Dockerfile and tools/benchmark.py)
performance testing/benchmarking
docker build . --platform=linux/arm64 -t testmon -f Dockerfile.perf-benchmark
docker run -it -v "$(pwd)":/mount -t testmon
Fly deployment
automatically
git reset --hard the deploy
branch to the commit you want to deploy and push --force
it to the tarpas/testmon-dev repo. There is a GH action which automatically deploys.
manually
fly deploy
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pytest-testmon-dev-2.0.3.tar.gz
.
File metadata
- Download URL: pytest-testmon-dev-2.0.3.tar.gz
- Upload date:
- Size: 51.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c236c798c94b8e211edb12bc1b9948940fcac55741145b62fff57ea6aa4e7cc0 |
|
MD5 | d90f9167c77927a720841474dcf34d49 |
|
BLAKE2b-256 | f943b4095218128f75892442ec808f7d1d692f35abdc302645a20c93bdc6b4b6 |
File details
Details for the file pytest_testmon_dev-2.0.3-py3-none-any.whl
.
File metadata
- Download URL: pytest_testmon_dev-2.0.3-py3-none-any.whl
- Upload date:
- Size: 30.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b1f22ff57e87652594d9e63b9d491c9548d4ba1e5d0321b542d9fa19c855df7 |
|
MD5 | f7bd12cb8f2a44b41e9be9b89466db07 |
|
BLAKE2b-256 | f2a61359e83e39b7b03e9fbf1bfa33ea4f61c0cd57b1add6cd4abe47ad222df7 |