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 installandpre-commit install-hooksbefore commiting. - Run tests (pytest).
- Build pytest-testmon
python tools/build/build.py testmonand 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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|