Skip to main content

Easily setup relational database fixtures and assert database contents in unittest.

Project description

Easily setup relational database fixtures and assert database contents in unittest.

Install

$ pip install db_integration_test

Usage

from dbit import DatabaseTestCase, fixture

class SomeTest(DatabaseTestCase):

    def setUp(self):
        # the DB connection has to be created before the setUp is run.
        # DatabaseTestCase only ever creates a single connection. Multiple calls to connect are ignored.
        # to connect to a different DB, call self.disconnect(), then self.connect() with a different connection string.
        # uses SQLAlchemy under the hood
        self.connect('postgresql+psycopg2://user:pass@localhost/test_db')
        super().setUp()

    @fixture("table_name", [{'id': 1, 'value': 'abc'}, {'id': 2, 'value': 'def'}])
    def test_something_with_your_database(self):
        # interact with the DB
        # self.engine contains the SQLAlchemy Engine
        # self.session contains the SQLAlchemy ORM session
        # self.base contains the automap base for the current database
        # self.disconnect() disconnects from the DB

        # assert that the table contents match the fixture exactly
        self.assertMatchFixture("table_name", self.get_table_contents(self.base.classes.table_name))

        # assert that some number of rows appear in the fixture
        self.assertAllInFixture("table_name", [{'id': 1, 'value': 'abc'}])

Project details


Release history Release notifications

This version
History Node

1.1.0

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
db_integration_test-1.1.0.tar.gz (5.3 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page