py.test extension for per-test couchdb databases using couchdbkit
pytest-couchdbkit is a simple pytest extension that manages test databases for your couchdbkit using apps.
In order to use it, you only need to set the ini option couchdbkit_suffix to something fitting your app. Additionally you may use couchdbkit_backend to select the gevent/eventlet backends.
To setup couchapps before running the tests, there is the pytest_couchdbkit_push_app(server, dbname) hook
It can be used to create a pristine database, which is replicated into each test database.
The provided funcarg couchdb will be a freshly flushed database named pytest_ + couchdbkit_suffix,
additionally, after each test item, the database will be dumped to tmpdir.join(couchdb.dump)
which is a simple file having entries in the format:
number(\d+) + "\r\n" + number bytes + "\r\n"
- the db info
- raw attachment data following the document
Attachments are ordered by name, so they can be reassigned to their metadata on loading.
The dump format is meant to be human-readable.
- fs fixtures (like couchapp)
- code fixtures
- dump fixtures
- comaring a db to sets of defined fixtures
from 0.5 to 0.5.1
- fix MANIFEST.in
from 0.4 to 0.5
- fix breaking testruns that dont actually use it
- add a lot of tests i should have done before 0.4
- add support for pytest-xdist, if a slave is detected, push_app wont be called, and dbname gets the gw id appended
from 0.3 to 0.4
- add pytest_couchdbkit_push_app hook
from 0.2 to 0.3
- switch dump format to chunked encoding
- pretty json in dumps
- attachments in dumps
- utility functions for loading dumps back to a database
from 0.1 to 0.2
- use json-lines as extension for the dump
- condense json to one line per document for humanly acceptable parsinig
- fail if no couchdbkit_prefix is set
- initial stuff