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
Metadata
Release files for pytest-testmon-dev 2.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pytest-testmon-dev-2.0.3.tar.gz | 51.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pytest_testmon_dev-2.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 82.3 kB
Release files / pytest-testmon-dev-2.0.3.tar.gz
| Download URL | pytest-testmon-dev-2.0.3.tar.gz |
|---|---|
| Size | 51.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c236c798c94b8e211edb12bc1b9948940fcac55741145b62fff57ea6aa4e7cc0
|
|
BLAKE2b-256 checksum How to use checksums |
f943b4095218128f75892442ec808f7d1d692f35abdc302645a20c93bdc6b4b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.2
|
Release files / pytest_testmon_dev-2.0.3-py3-none-any.whl
| Download URL | pytest_testmon_dev-2.0.3-py3-none-any.whl |
|---|---|
| Size | 30.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1b1f22ff57e87652594d9e63b9d491c9548d4ba1e5d0321b542d9fa19c855df7
|
|
BLAKE2b-256 checksum How to use checksums |
f2a61359e83e39b7b03e9fbf1bfa33ea4f61c0cd57b1add6cd4abe47ad222df7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.2
|