From: Mike Bayer Date: Mon, 13 Aug 2007 20:48:46 +0000 (+0000) Subject: added scoped session test independent of Session.mapper test X-Git-Tag: rel_0_4beta2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eca46858972b6c3d874ae8ca3fc3098ca7572a07;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git added scoped session test independent of Session.mapper test --- diff --git a/test/orm/session.py b/test/orm/session.py index d0b299b630..4720593b6e 100644 --- a/test/orm/session.py +++ b/test/orm/session.py @@ -4,6 +4,7 @@ from sqlalchemy.orm import * from testlib import * from testlib.tables import * import testlib.tables as tables +import fixtures class SessionTest(AssertMixin): def setUpAll(self): @@ -438,8 +439,40 @@ class SessionTest(AssertMixin): self._assert_key(key, (User, (1,), None)) key = s.identity_key(User, row=row, entity_name="en") self._assert_key(key, (User, (1,), "en")) + +class ScopedSessionTest(ORMTest): + + def define_tables(self, metadata): + global table, table2 + table = Table('sometable', metadata, + Column('id', Integer, primary_key=True), + Column('data', String(30))) + table2 = Table('someothertable', metadata, + Column('id', Integer, primary_key=True), + Column('someid', None, ForeignKey('sometable.id')) + ) + + def test_basic(self): + Session = scoped_session(sessionmaker()) + + class SomeObject(fixtures.Base):pass + class SomeOtherObject(fixtures.Base):pass + + mapper(SomeObject, table, properties={ + 'options':relation(SomeOtherObject) + }) + mapper(SomeOtherObject, table2) + + s = SomeObject(id=1, data="hello") + sso = SomeOtherObject() + s.options.append(sso) + Session.save(s) + Session.commit() + Session.clear() + + assert SomeObject(id=1, data="hello", options=[SomeOtherObject(someid=1)]) == Session.query(SomeObject).one() -class ScopedSessionTest(PersistTest): +class ScopedMapperTest(PersistTest): def setUpAll(self): global metadata, table, table2 metadata = MetaData(testbase.db)