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
File details
Details for the file db_integration_test-1.1.0.tar.gz
.
File metadata
- Download URL: db_integration_test-1.1.0.tar.gz
- Upload date:
- Size: 5.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | db90f127fd2eeb616271991d0b7c132177b73d713a546a0b24b27d51a67d32ee |
|
MD5 | e60194c06b4c3891af74f223aff94f4e |
|
BLAKE2b-256 | 8f410717d6c8770c47e7754be6b0e297e3c8e453251fda6e9ffcb8ed44c78efb |