py.test extension for per-test couchdb databases using couchdbkit
Project description
pytest-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"
entries are:
the db info
documents
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.
Future
fs fixtures (like couchapp)
code fixtures
dump fixtures
comaring a db to sets of defined fixtures
CHANGELOG
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
0.1
initial stuff
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.