Package: pytest-testmon-dev
PrefaceThis 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 viapip 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 OSPTWe generate pytest-testmon by runningpreprocesson the source.preprocesstemplate directives are in Python comments so testmon_dev can be executed as is and is the template for
pytest-testmon.ProcessInstallation and testsHave a look at.github/workflows/tests.ymlto 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
toxContributingWe use pre-commit so runpre-commit installandpre-commit install-hooksbefore commiting.Run tests (pytest).Build pytest-testmonpython tools/build/build.py testmonand run it's test suitecd ..;cd pytest-testmon;toxSee alsoprocessData modelCurrent denormalized schema (client):Described in file 'docs/schema_client.md'Current denormalized schema (client):Described in file 'docs/schema_server.md'runtime environmentsdevelopment (and build, test, lint)local dogfooding is possible (running the test suite with pytest —testmon)CI - GHAclient 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 publishedserverperformance regression tests via valgrind cachegrind (see Dockerfile and tools/benchmark.py)performance testing/benchmarkingdocker build . --platform=linux/arm64 -t testmon -f Dockerfile.perf-benchmark
    docker run -it -v "$(pwd)":/mount -t testmonFly deploymentautomaticallygit reset --hard thedeploybranch to the commit you want to deploy andpush --forceit to the tarpas/testmon-dev repo. There is a GHactionwhich automatically deploys.manuallyfly deploy