pytest-toolbox

Numerous useful plugins for pytest.


Keywords
pytest, plugin, toolbox
License
MIT
Install
pip install pytest-toolbox==0.4

Documentation

pytest-toolbox

Note: this repo is no-longer maintained, the best bits have been moved to https://github.com/samuelcolvin/dirty-equals

Build Status codecov.io PyPI Status license

Copyright (C) 2016 Samuel Colvin

Numerous useful plugins for pytest.

Fixtures

tmpworkdir
Run the test with the working directory set to a temporary directory. Similar to the pytest plugin tmpdir except working directory is changed.
smart_caplog
capture logs with a smarter interface than pytest's native caplog
print_logs
print all logs.
loop
asyncio loop.

Methods

(See below for usage examples).

mktree
Create a tree of files from a dictionary.
gettree
Return a dictionary depicting a directory tree.

Comparison Objects

All can be imported from pytest_toolbox.comparison.

CloseToNow
check that a date (or date-like object) is close to now
AnyInt
check tests that an object is an int
RegexStr
check that a string matches the regex
IsUUID
that that an object is an instance of UUID.

Used with equals as in my_date == CloseToNow(), these are useful when checking objects which contain a few unknown values are as expected

Eg.

assert {
    'details': {
        'user': 'foobar@example.com',
        'id': AnyInt(),
        'published': False,
        'event': 'an example',
        'created_ts': CloseToNow(),
    },
    'other_thing': [
        ...
    ],
    ...
} == obj

Usage

from pytest_toolbox import gettree, mktree

def test_whatever(tmpworkdir):
    mktree(tmpworkdir, {
        'foobar.txt': 'has this content'
    })
    assert gettree(tmpworkdir) = {'foobar.txt': 'has this content'}

TODO