]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
added scoped session test independent of Session.mapper test
authorMike Bayer <mike_mp@zzzcomputing.com>
Mon, 13 Aug 2007 20:48:46 +0000 (20:48 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Mon, 13 Aug 2007 20:48:46 +0000 (20:48 +0000)
test/orm/session.py

index d0b299b630235d1b924a1eb29c3564f87335e34c..4720593b6e803d279a8fe8e068b5d05bff3256ca 100644 (file)
@@ -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)