From: Mike Bayer Date: Fri, 1 Aug 2008 15:10:36 +0000 (+0000) Subject: test case to disprove [ticket:1126] X-Git-Tag: rel_0_5beta3~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5d55eac6b6281e185cb1b888c3344ec0106f51de;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git test case to disprove [ticket:1126] --- diff --git a/test/orm/inheritance/basic.py b/test/orm/inheritance/basic.py index 5028694fcf..decc867951 100644 --- a/test/orm/inheritance/basic.py +++ b/test/orm/inheritance/basic.py @@ -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):