]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- added a test for boolean saves/retrieves
authorMike Bayer <mike_mp@zzzcomputing.com>
Sun, 9 Dec 2007 16:11:21 +0000 (16:11 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sun, 9 Dec 2007 16:11:21 +0000 (16:11 +0000)
test/orm/memusage.py
test/orm/unitofwork.py

index e8d98aa426e52f6cf945bde6975f2f180df9b2ee..756074010b7b4218d2807868accce9c890304b76 100644 (file)
@@ -75,7 +75,7 @@ class MemUsageTest(AssertMixin):
                     A(col2="a3", bs=[B(col2="b3")])
                 ], 
                 alist)
-
+            
             for a in alist:
                 sess.delete(a)
             sess.flush()
index 0464e2364e4c3c8d683cb3458e4bee85fcd83cc8..8f5d5d2c4475d9d938684bf36db2f7215d1fb882 100644 (file)
@@ -10,6 +10,8 @@ from testlib import tables, fixtures
 
 """tests unitofwork operations"""
 
+# TODO: convert suite to not use Session.mapper, use fixtures.Base
+# with explicit session.save()
 Session = scoped_session(sessionmaker(autoflush=True, transactional=True))
 mapper = Session.mapper
 
@@ -1732,6 +1734,43 @@ class SaveTest3(ORMTest):
         Session.commit()
         assert t2.count().scalar() == 0
 
+class BooleanColTest(ORMTest):
+    def define_tables(self, metadata):
+        global t
+        t =Table('t1', metadata, 
+            Column('id', Integer, primary_key=True),
+            Column('name', String(30)),
+            Column('value', Boolean))
+    
+    def test_boolean(self):
+        # use the regular mapper
+        from sqlalchemy.orm import mapper
+        
+        class T(fixtures.Base):
+            pass
+        mapper(T, t)
+        
+        sess = create_session()
+        t1 = T(value=True, name="t1")
+        t2 = T(value=False, name="t2")
+        t3 = T(value=True, name="t3")
+        sess.save(t1)
+        sess.save(t2)
+        sess.save(t3)
+        
+        sess.flush()
+        
+        for clear in (False, True):
+            if clear:
+                sess.clear()
+            self.assertEquals(sess.query(T).all(), [T(value=True, name="t1"), T(value=False, name="t2"), T(value=True, name="t3")])
+            if clear:
+                sess.clear()
+            self.assertEquals(sess.query(T).filter(T.value==True).all(), [T(value=True, name="t1"),T(value=True, name="t3")])
+            if clear:
+                sess.clear()
+            self.assertEquals(sess.query(T).filter(T.value==False).all(), [T(value=False, name="t2")])
+        
 class RowSwitchTest(ORMTest):
     def define_tables(self, metadata):
         global t1, t2, t3, t1t3