Skip to main content

selects tests affected by changed files and methods

Project description

image

Preface

This is the closed-source Testmon. The repo has a couple of subprojects:

  1. 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 .

  2. 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

  1. We use pre-commit so run pre-commit install and pre-commit install-hooks before commiting.
  2. Run tests (pytest).
  3. Build pytest-testmon python tools/build/build.py testmon and run it's test suite cd ..;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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytest-testmon-dev-2.0.3.tar.gz (51.9 kB view details)

Uploaded Source

Built Distribution

pytest_testmon_dev-2.0.3-py3-none-any.whl (30.4 kB view details)

Uploaded Python 3

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

Hashes for pytest-testmon-dev-2.0.3.tar.gz
Algorithm Hash digest
SHA256 c236c798c94b8e211edb12bc1b9948940fcac55741145b62fff57ea6aa4e7cc0
MD5 d90f9167c77927a720841474dcf34d49
BLAKE2b-256 f943b4095218128f75892442ec808f7d1d692f35abdc302645a20c93bdc6b4b6

See more details on using hashes here.

File details

Details for the file pytest_testmon_dev-2.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for pytest_testmon_dev-2.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 1b1f22ff57e87652594d9e63b9d491c9548d4ba1e5d0321b542d9fa19c855df7
MD5 f7bd12cb8f2a44b41e9be9b89466db07
BLAKE2b-256 f2a61359e83e39b7b03e9fbf1bfa33ea4f61c0cd57b1add6cd4abe47ad222df7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page