Hi.  I've been working on some unittests for a pylons application.
Part of that testing involves adding data to the database, submitting
a request through the paster testing framework and examining the
response.

I use two separate sessions for unittests.  One is generated by the
pylons application itself and the other is created for the unittest.
Whenever I add data in the unittest session, it is not seen by the
pylons application.  This simple script below demonstrates whats
happening during my tests.  (Or at least what I think is happening).

Is there any way around this?  The only alternative I see is using the
same session as the pylons application.  But I've run into other
issues when I try to do that.

The output from the script below is ->

0
10
0

# Begin python script
import sys
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String, create_engine
from sqlalchemy.orm import sessionmaker

Base = declarative_base()


class SimpleTest(Base):
    __tablename__ = 'simpletest'

    id = Column(Integer, primary_key=True)
    s1 = Column(String(255))


def main():
    engine1 = create_engine('mysql://test:t...@localhost/test')
    engine2 = create_engine('mysql://test:t...@localhost/test')
    SimpleTest.metadata.create_all(engine1)

    # Clear out the test table.
    con = engine1.connect()
    con.execute('TRUNCATE simpletest')

    # Create two distinct sessions.
    s1 = sessionmaker(bind=engine1)()
    s2 = sessionmaker(bind=engine2)()

    # Show empty table count on session 2.
    print s2.execute('SELECT COUNT(*) FROM simpletest').scalar()

    # Load the database with 10 rows.
    for x in range(10):
        st = SimpleTest()
        st.s1 = str(x)
        s1.add(st)
    s1.commit()

    print s1.execute('SELECT COUNT(*) FROM simpletest').scalar()
    print s2.execute('SELECT COUNT(*) FROM simpletest').scalar()


if __name__ == '__main__':
    sys.exit(main())


Thanks,
jw

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to