Note: this repo is no-longer maintained, the best bits have been moved to https://github.com/samuelcolvin/dirty-equals
Copyright (C) 2016 Samuel Colvin
Numerous useful plugins for pytest.
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.
(See below for usage examples).
mktree
- Create a tree of files from a dictionary.
gettree
- Return a dictionary depicting a directory tree.
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
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