Source

pytest-couchdbkit / README

Full commit
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.4 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