Skip to main content

Better fixtures management. Various helpers

Project description

Installation

pytest-tipsi-testing is distributed on PyPI as a universal wheel and is available on Linux/macOS and Windows and supports Python 3.5+.

$ pip install pytest-tipsi-testing

License

pytest-tipsi-testing is distributed under the terms of the MIT License.

Motivation and features

We want to make fixtures more predictable in pytest. So this plugin ensures that only loaded fixtures will be available when test is running.

Currently pytest allows fixtures with bigger scopes (session, module and etc.) to be instantiated even if test doesn’t directly require them. This may cause some troubles in several cases, for example if you wan’t to create some kind of cache in bigger fixture.

This means that all not required fixtures will be finished before test is started: even with bigger scope. So if you want to have some fixtures always awailable (eg. docker_start fixture with session scope) - you should make it autoused.

Also we’re forcing correct order for fixtures with different scopes: session -> module -> class -> function.

Usecase

In conjunction with pytest-tipsi-django you can make fixtures on different level than scope and share the same database state across different tests. It’s quit helpful when you perform complex and long database setup and want to have small and readable test cases.

Please see pytest-tipsi-django documentation for more detailed description.

Fixtures

vprint

Print that works only when verbose mode is enabled -v.

Note: you should add -s to see the output.

log_requests

Use it when you want to write down all request/responses made with requests library. By default it will put docs into .doc dir or other directory supplied by DOCS_ROOT environmental variable.

def example(log_requests):
  import requests
  with log_request('out_file'):
    r = requests.get('http://echo.jsontest.com/key/value/one/two')
    assert r.status_code == 200, r

It will put json file into your .doc/{MODULE_PATH}.out_file.json, in my case it was a .doc/tests.test_log_requests.out.json your case may be different depending on module you have used it in.

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_tipsi_testing-1.4.3.tar.gz (5.0 kB view details)

Uploaded Source

Built Distribution

pytest_tipsi_testing-1.4.3-py2.py3-none-any.whl (5.6 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pytest_tipsi_testing-1.4.3.tar.gz.

File metadata

File hashes

Hashes for pytest_tipsi_testing-1.4.3.tar.gz
Algorithm Hash digest
SHA256 a580926c6a2569d25b402d9ed99f1cf82ce82f7c3e6f50b2b6b66cc5b5798ed0
MD5 5e5e9ed2133b4625b3c62a573b820817
BLAKE2b-256 5c96fd7c5af9c482fc52da768704125f95fec857df10e4e368dc7f4a3c65f64e

See more details on using hashes here.

File details

Details for the file pytest_tipsi_testing-1.4.3-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for pytest_tipsi_testing-1.4.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 2bbdc8fe73f0432ade0f6d095761ee4570f8e2191ec9e63af1edc76bea5bbb67
MD5 d9559f1d0957d973a76c58aeb24a635c
BLAKE2b-256 e6f03a6f40285c20cdd5596865fb1c2a65ce1297a635dca3f12ec254d6678e87

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