Пример #1
0
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
Пример #2
0
def setup():

    try:
        metadata.create_all()

    finally:
        metadata.bind = None
Пример #3
0
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 == '*****@*****.**'
Пример #4
0
 def create_test_tables(self, *entities):
     metadata.create_all(bind=Session.connection())
Пример #5
0
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()