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 | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Close
Hashes for db_integration_test-1.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | db90f127fd2eeb616271991d0b7c132177b73d713a546a0b24b27d51a67d32ee |
|
MD5 | e60194c06b4c3891af74f223aff94f4e |
|
BLAKE2b-256 | 8f410717d6c8770c47e7754be6b0e297e3c8e453251fda6e9ffcb8ed44c78efb |