diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-02-02 19:03:20 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-02-02 19:03:20 -0500 |
commit | 4f1274fc1fc675e2a482b68d658b36597f243c31 (patch) | |
tree | 70e27668b28b0ade42d489e7b026e6b9b120ee9d /test/orm/inheritance/test_basic.py | |
parent | c5b4938a9a2918a14397cff3edcee8c69ca249ea (diff) | |
download | sqlalchemy-4f1274fc1fc675e2a482b68d658b36597f243c31.tar.gz |
- Also emits the correct WHERE criterion
when using single table inheritance. [ticket:2038]
Diffstat (limited to 'test/orm/inheritance/test_basic.py')
-rw-r--r-- | test/orm/inheritance/test_basic.py | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/test/orm/inheritance/test_basic.py b/test/orm/inheritance/test_basic.py index 55cc43993..96c31d516 100644 --- a/test/orm/inheritance/test_basic.py +++ b/test/orm/inheritance/test_basic.py @@ -1520,25 +1520,32 @@ class NoPolyIdentInMiddleTest(_base.MappedTest): @classmethod def define_tables(cls, metadata): Table('base', metadata, - Column('id', Integer, primary_key=True, test_needs_autoincrement=True), + Column('id', Integer, primary_key=True, + test_needs_autoincrement=True), Column('type', String(50), nullable=False), ) @classmethod def setup_classes(cls): - class A(_base.BasicEntity): + class A(_base.ComparableEntity): pass class B(A): pass class C(B): pass + class D(B): + pass + class E(A): + pass @classmethod @testing.resolve_artifact_names def setup_mappers(cls): mapper(A, base, polymorphic_on=base.c.type) - mapper(B, inherits=A) + mapper(B, inherits=A, ) mapper(C, inherits=B, polymorphic_identity='c') + mapper(D, inherits=B, polymorphic_identity='d') + mapper(E, inherits=A, polymorphic_identity='e') @testing.resolve_artifact_names def test_load_from_middle(self): @@ -1561,6 +1568,15 @@ class NoPolyIdentInMiddleTest(_base.MappedTest): assert class_mapper(B).polymorphic_on is base.c.type assert class_mapper(C).polymorphic_on is base.c.type + @testing.resolve_artifact_names + def test_load_multiple_from_middle(self): + s = Session() + s.add_all([C(), D(), E()]) + eq_( + s.query(B).order_by(base.c.type).all(), + [C(), D()] + ) + class DeleteOrphanTest(_base.MappedTest): """Test the fairly obvious, that an error is raised when attempting to insert an orphan. |