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


Download files

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

Source Distribution

db_integration_test-1.1.0.tar.gz (5.3 kB view details)

Uploaded Source

File details

Details for the file db_integration_test-1.1.0.tar.gz.

File metadata

File hashes

Hashes for db_integration_test-1.1.0.tar.gz
Algorithm Hash digest
SHA256 db90f127fd2eeb616271991d0b7c132177b73d713a546a0b24b27d51a67d32ee
MD5 e60194c06b4c3891af74f223aff94f4e
BLAKE2b-256 8f410717d6c8770c47e7754be6b0e297e3c8e453251fda6e9ffcb8ed44c78efb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page