def test_reahl_additions(): ExecutionContext().install() try: metadata.bind = 'sqlite:///:memory:' metadata.create_all() address = Address() Session.add(address) email_field = address.fields.email_address # While a programmer would not usually write code like this, # it is useful to show how the framework can use Fields and Events # to obtain more information about a certain Field/Event: assert email_field.label == 'Email' # Fields are used (amongst other things) to validate user input: with expected(Exception): email_field.from_input('invalid email address') with expected(NoException): assert address.email_address == None email_field.from_input('*****@*****.**') assert address.email_address == '*****@*****.**' # After input was given, the field is set on the object it belongs to: # (The value set is a marshalled version of the user input. In this case it is just # a string again, but it could have been, for example an EmailAddress object, # and Integer, or a Date.) assert address.email_address == '*****@*****.**' finally: metadata.bind = None
def setup(): try: metadata.create_all() finally: metadata.bind = None
def test_model(): metadata.bind = 'sqlite:///:memory:' metadata.create_all() with ExecutionContext(): Address(name='John', email_address='*****@*****.**').save() Address(name='Jane', email_address='*****@*****.**').save() addresses = Session.query(Address).all() assert addresses[0].name == 'John' assert addresses[0].email_address == '*****@*****.**' assert addresses[1].name == 'Jane' assert addresses[1].email_address == '*****@*****.**'
def create_test_tables(self, *entities): metadata.create_all(bind=Session.connection())
import sys from reahl.component.config import StoredConfiguration from reahl.component.dbutils import SystemControl from reahl.sqlalchemysupport import Session, metadata from reahl.component.context import ExecutionContext from reahl.doc.examples.tutorial.migrationexamplebootstrap.migrationexamplebootstrap import Address config = StoredConfiguration(sys.argv[1]) config.configure() context = ExecutionContext().install() context.config = config context.system_control = SystemControl(config) try: context.system_control.orm_control.connect() metadata.create_all() Session.add(Address(name='John Doe', email_address='*****@*****.**')) Session.add( Address(name='Jane Johnson', email_address='*****@*****.**')) Session.add(Address(name='Jack Black', email_address='*****@*****.**')) context.system_control.orm_control.commit() finally: context.system_control.orm_control.disconnect()