Tableau is a collection of helper classes for building test fixtures and seed data
Project description
Tableau is a collection of helper classes for building test fixtures and seed data.
Model composition without any predefined schemas. The model object relationships are automatically deduced through the value annotations:
from tableau import Datum foo = Datum( 'Foo', ('id'), # schema name / identifiers id=1, field_a=1, field_b=2, collection=one_to_many([ Datum( 'Bar', auto('id'), # id will be automagically generated by the walker field_c=1 ), Datum( 'Bar', auto('id'), field_c=1 ), ], referring_fields='foo_id' ) )
Export the model object graph to plain ANSI SQL statements, in the ORM-agnostic manner:
import sys from tableau import Datum, DataSuite, DataWalker from tableau.sql import SQLGenerator # ... suite = DataSuite() DataWalker(suite)(foo) SQLGenerator(sys.stdout, encoding='utf-8')(suite)
The above yields the following SQL statements:
INSERT INTO `Foo` (`id`, `field_a`, `field_b`) VALUES (1, 1, 2); INSERT INTO `Bar` (`id`, `field_c`, `foo_id`) VALUES (1, 1, 1), (2, 1, 1);
Automatically mapping the existing SQLAlchemy tables / declarative classes to the Data:
from tableau.sqla import newSADatum # metadata = ... # Base = ... # session = ... class Foo(Base): __tablename__ = 'foos' id = Column(Integer, primary_key=True) field = Column(String) def some_model_specific_method(self): return self.field Datum = newSADatum(metadata, Base) datum = Datum( 'foos', ('id'), field='test' ) print datum.some_model_specific_method() # 'test' session.add(datum) # it can even be added to the session!
Change history
- 0.0.0
Unreleased.
- 0.0.1
First release. No docs!
- 0.0.2
Support mapping to SQLAlchemy tables and declarative classses. Still no docs!
- 0.0.3
Fix critical bugs in 0.0.2.
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 tableau-0.0.3.tar.gz
.
File metadata
- Download URL: tableau-0.0.3.tar.gz
- Upload date:
- Size: 11.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c9a95c67477149a25cefd5d52b96048f79f797e5c533882826878ddeecd7b78 |
|
MD5 | b8e21f0067e44b31311c03dbe966e959 |
|
BLAKE2b-256 | 0a818996109f1fab671f7867a8df878888bd85209d78e40aa2b795c96fb257a2 |