Skip to main content

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.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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pytest-couchdbkit, version 0.4
Filename, size File type Python version Upload date Hashes
Filename, size pytest-couchdbkit-0.4.tar.gz (3.5 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page