pytest db plugin
uploading test stdout & stderr to a DB for easy debugging and comparison
Installtion
- for es db client:
pip install pytest-db[es] - for only default (local files) db client:
pip install pytest-db
Flow
- pytest test ends
- pytest test teardown starts
- plugin starts
- plugin connects to DB
- plugin collects all sources
- plugin uploads all sources
- plugin ends DB connection
- plugin ends
Invocation
pytest ...- as long as the plugin is installed, and the url is provided, the plugin will attempt to upload
- if the plugin is installed but a config file is not present / malformed / missing url, a warning will be displayed in the end of the test
Configuration
- minimal
- optional
- not having one will not break the test
- not having one will mean nothing is uploaded UNLESS the url param is
passed in the invocation command
- a default db client will be used in such cases and the data will be written into "/tmp"
- will be located in invocation directory
- name: ".config.toml"
- allows for customizing:
- DB url and authentication
- DB interaction failure should fail test [default: false]
- toml format (see example)
- see supported dbs
Compitability
- python3.6+
- pytest
- enables adding additional data. see additional-data
Supported DB
- local file system (local)
- Elasticsearch (es)
Additional data
- each upload can include additional keys and values
- the key will be defined in the config file
- the value will be defined as a either
- const
- function that will be invoked in after collecting the doc
- supported function languages:
- bash
- python
- config file example:
...
[additional-data]
[additional-data.consts]
name = 'my-name'
[additional-data.bash]
os = 'lsb_release -sr'
[additional-data.python]
current directory = 'import os; print(os.getcwd())'
- python functions will be called using
exec - bash functions will be called using
subprocess.check_output
Config File Example
ES
# optional
title = 'my pytest db plugin config'
user = 'avin'
# required
type = 'es'
url = 'my-url'
index = 'my-index'
# optional
must-upload = true
[additional-data]
[additional-data.consts]
name = 'avin'
[additional-data.bash]
os = 'lsb_release -sr'
[additional-data.python]
current directory = 'import os; print(os.getcwd())'
Release files for pytest-db-plugin 0.0.0.0.0.2
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-db-plugin-0.0.0.0.0.2.tar.gz | 4.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pytest_db_plugin-0.0.0.0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.6 kB
Release files / pytest-db-plugin-0.0.0.0.0.2.tar.gz
| Download URL | pytest-db-plugin-0.0.0.0.0.2.tar.gz |
|---|---|
| Size | 4.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7dc453741ccbe809f2767c569f8306785a54d127820268ad902f950e8363a960
|
|
BLAKE2b-256 checksum How to use checksums |
ad87ce81064bb509720f9a84d90675f4b3b5ea8da75858328f69973c9a050367
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.9
|
Release files / pytest_db_plugin-0.0.0.0.0.2-py3-none-any.whl
| Download URL | pytest_db_plugin-0.0.0.0.0.2-py3-none-any.whl |
|---|---|
| Size | 7.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
71c4af0b72a546db3acafea4b42b28fcd737f4c35bbe1a67e8ec2377d1e0309a
|
|
BLAKE2b-256 checksum How to use checksums |
4de516b24016295c7aaca53059f56f07b2c4ffa35153974ad0b6ae1813eed63d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.9
|