from sqlalchemy import *
from sqlalchemy.orm import *
engine = create_engine('sqlite://')
metadata = MetaData()
metadata.bind = engine
Session = scoped_session(sessionmaker(bind=metadata.bind))
session = Session()
authors = Table('authors', metadata,
Column('id', Integer, primary_key=True),
Column('first_name', String(60)),
Column('last_name', String(60)))
class Author(object):
pass
mapper(Author, authors)
books = Table('books', metadata,
Column('id', Integer, primary_key=True),
Column('title', String(30)),
Column('author_id', Integer, ForeignKey('authors.id')))
class Book(object):
pass
mapper(Book, books, properties={
'author': relation(Author, backref='books')
})
metadata.create_all()
from fixture import SQLAlchemyFixture
dbfixture = SQLAlchemyFixture(
env={'BookData': Book, 'AuthorData': Author},
engine=metadata.bind)
from fixture import DataSet
class AuthorData(DataSet):
class frank_herbert:
first_name = "Frank"
last_name = "Herbert"
class BookData(DataSet):
class dune:
title = "Dune"
author = AuthorData.frank_herbert
data = dbfixture.data(AuthorData, BookData)
data.setup()
print data.AuthorData.frank_herbert.id
print data.BookData.dune.author.id == data.AuthorData.frank_herbert.id