]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
test case to disprove [ticket:1126]
authorMike Bayer <mike_mp@zzzcomputing.com>
Fri, 1 Aug 2008 15:10:36 +0000 (15:10 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Fri, 1 Aug 2008 15:10:36 +0000 (15:10 +0000)
test/orm/inheritance/basic.py

index 5028694fcfd0589d85a2f79d8bed89221dc48bdd..decc867951679501384ce51a73ba291afcde8a04 100644 (file)
@@ -872,6 +872,40 @@ class OverrideColKeyTest(ORMTest):
         sess.add(s1)
         sess.flush()
         assert sess.query(Sub).one().data == "im the data"
+    
+    def test_two_levels(self):
+        class Base(object):
+            pass
+
+        class Sub(Base):
+            @property
+            def data(self):
+                return "im sub"
+
+        class SubSub(Sub):
+            @property
+            def data(self):
+                return "im sub sub"
+        
+        mapper(Base, base)
+        mapper(Sub, subtable, inherits=Base)
+        mapper(SubSub, inherits=Sub)
+        
+        sess = create_session()
+        s1 = Sub()
+        assert s1.data == "im sub"
+        s2 = SubSub()
+        assert s2.data == "im sub sub"
+        b1 = Base()
+        b1.data="this is some data"
+        assert b1.data == "this is some data"
+        
+        sess.add_all([s1, s2, b1])
+        sess.flush()
+        sess.clear()
+        
+        assert sess.query(Sub).get(s1.base_id).data == "im sub"
+        assert sess.query(SubSub).get(s2.base_id).data == "im sub sub"
         
 class DeleteOrphanTest(ORMTest):
     def define_tables(self, metadata):