diff options
Diffstat (limited to 'test/orm/inheritance')
-rw-r--r-- | test/orm/inheritance/test_assorted_poly.py | 7 | ||||
-rw-r--r-- | test/orm/inheritance/test_basic.py | 5 | ||||
-rw-r--r-- | test/orm/inheritance/test_concrete.py | 3 | ||||
-rw-r--r-- | test/orm/inheritance/test_magazine.py | 88 | ||||
-rw-r--r-- | test/orm/inheritance/test_poly_loading.py | 6 | ||||
-rw-r--r-- | test/orm/inheritance/test_poly_persistence.py | 8 | ||||
-rw-r--r-- | test/orm/inheritance/test_polymorphic_rel.py | 8 | ||||
-rw-r--r-- | test/orm/inheritance/test_single.py | 20 |
8 files changed, 81 insertions, 64 deletions
diff --git a/test/orm/inheritance/test_assorted_poly.py b/test/orm/inheritance/test_assorted_poly.py index 83044ef51..b47100647 100644 --- a/test/orm/inheritance/test_assorted_poly.py +++ b/test/orm/inheritance/test_assorted_poly.py @@ -506,8 +506,8 @@ def _generate_test(jointype="join1", usedata=False): for jointype in ["join1", "join2", "join3", "join4"]: for data in (True, False): - func = _generate_test(jointype, data) - setattr(RelationshipTest3, func.__name__, func) + _fn = _generate_test(jointype, data) + setattr(RelationshipTest3, _fn.__name__, _fn) del func @@ -1502,7 +1502,8 @@ class MultiLevelTest(fixtures.MappedTest): class ManyToManyPolyTest(fixtures.MappedTest): @classmethod def define_tables(cls, metadata): - global base_item_table, item_table, base_item_collection_table, collection_table + global base_item_table, item_table + global base_item_collection_table, collection_table base_item_table = Table( "base_item", metadata, diff --git a/test/orm/inheritance/test_basic.py b/test/orm/inheritance/test_basic.py index 81eb89f91..403afb6e1 100644 --- a/test/orm/inheritance/test_basic.py +++ b/test/orm/inheritance/test_basic.py @@ -1049,7 +1049,8 @@ class M2OUseGetTest(fixtures.MappedTest): # the 'primaryjoin' looks just like "Sub"'s "get" clause # (based on the Base id), and foreign_keys since that join # condition doesn't actually have any fks in it - # 'sub':relationship(Sub, primaryjoin=base.c.id==related.c.sub_id, + # 'sub':relationship(Sub, + # primaryjoin=base.c.id==related.c.sub_id, # foreign_keys=related.c.sub_id) # now we can use this: "sub": relationship(Sub) @@ -2018,7 +2019,7 @@ class DistinctPKTest(fixtures.MappedTest): r"On mapper Mapper\|Employee\|employees, " "primary key column 'persons.id' is being " "combined with distinct primary key column 'employees.eid' " - "in attribute 'id'. Use explicit properties to give " + "in attribute 'id'. Use explicit properties to give " "each column its own mapped attribute name.", self._do_test, True, diff --git a/test/orm/inheritance/test_concrete.py b/test/orm/inheritance/test_concrete.py index aec3fee7d..3395e372c 100644 --- a/test/orm/inheritance/test_concrete.py +++ b/test/orm/inheritance/test_concrete.py @@ -86,7 +86,8 @@ class Company(object): class ConcreteTest(fixtures.MappedTest): @classmethod def define_tables(cls, metadata): - global managers_table, engineers_table, hackers_table, companies, employees_table + global managers_table, engineers_table, hackers_table + global companies, employees_table companies = Table( "companies", metadata, diff --git a/test/orm/inheritance/test_magazine.py b/test/orm/inheritance/test_magazine.py index 6329540b9..27f5e71ce 100644 --- a/test/orm/inheritance/test_magazine.py +++ b/test/orm/inheritance/test_magazine.py @@ -1,11 +1,7 @@ from sqlalchemy import CHAR -from sqlalchemy import Column from sqlalchemy import ForeignKey from sqlalchemy import Integer -from sqlalchemy import join -from sqlalchemy import outerjoin from sqlalchemy import String -from sqlalchemy import Table from sqlalchemy import Text from sqlalchemy.orm import backref from sqlalchemy.orm import create_session @@ -116,9 +112,7 @@ class ClassifiedPage(MagazinePage): class MagazineTest(fixtures.MappedTest): @classmethod def define_tables(cls, metadata): - global publication_table, issue_table, location_table, location_name_table, magazine_table, page_table, magazine_page_table, classified_page_table, page_size_table - - publication_table = Table( + Table( "publication", metadata, Column( @@ -126,7 +120,7 @@ class MagazineTest(fixtures.MappedTest): ), Column("name", String(45), default=""), ) - issue_table = Table( + Table( "issue", metadata, Column( @@ -135,7 +129,7 @@ class MagazineTest(fixtures.MappedTest): Column("publication_id", Integer, ForeignKey("publication.id")), Column("issue", Integer), ) - location_table = Table( + Table( "location", metadata, Column( @@ -147,7 +141,7 @@ class MagazineTest(fixtures.MappedTest): "location_name_id", Integer, ForeignKey("location_name.id") ), ) - location_name_table = Table( + Table( "location_name", metadata, Column( @@ -155,7 +149,7 @@ class MagazineTest(fixtures.MappedTest): ), Column("name", String(45), default=""), ) - magazine_table = Table( + Table( "magazine", metadata, Column( @@ -164,7 +158,7 @@ class MagazineTest(fixtures.MappedTest): Column("location_id", Integer, ForeignKey("location.id")), Column("page_size_id", Integer, ForeignKey("page_size.id")), ) - page_table = Table( + Table( "page", metadata, Column( @@ -173,7 +167,7 @@ class MagazineTest(fixtures.MappedTest): Column("page_no", Integer), Column("type", CHAR(1), default="p"), ) - magazine_page_table = Table( + Table( "magazine_page", metadata, Column( @@ -182,7 +176,7 @@ class MagazineTest(fixtures.MappedTest): Column("magazine_id", Integer, ForeignKey("magazine.id")), Column("orders", Text, default=""), ) - classified_page_table = Table( + Table( "classified_page", metadata, Column( @@ -193,7 +187,7 @@ class MagazineTest(fixtures.MappedTest): ), Column("titles", String(45), default=""), ) - page_size_table = Table( + Table( "page_size", metadata, Column( @@ -207,11 +201,11 @@ class MagazineTest(fixtures.MappedTest): def _generate_round_trip_test(use_unions=False, use_joins=False): def test_roundtrip(self): - publication_mapper = mapper(Publication, publication_table) + publication_mapper = mapper(Publication, self.tables.publication) issue_mapper = mapper( Issue, - issue_table, + self.tables.issue, properties={ "publication": relationship( Publication, @@ -220,11 +214,11 @@ def _generate_round_trip_test(use_unions=False, use_joins=False): }, ) - location_name_mapper = mapper(LocationName, location_name_table) + location_name_mapper = mapper(LocationName, self.tables.location_name) location_mapper = mapper( Location, - location_table, + self.tables.location, properties={ "issue": relationship( Issue, @@ -238,11 +232,11 @@ def _generate_round_trip_test(use_unions=False, use_joins=False): }, ) - page_size_mapper = mapper(PageSize, page_size_table) + page_size_mapper = mapper(PageSize, self.tables.page_size) magazine_mapper = mapper( Magazine, - magazine_table, + self.tables.magazine, properties={ "location": relationship( Location, backref=backref("magazine", uselist=False) @@ -254,47 +248,49 @@ def _generate_round_trip_test(use_unions=False, use_joins=False): if use_unions: page_join = polymorphic_union( { - "m": page_table.join(magazine_page_table), - "c": page_table.join(magazine_page_table).join( - classified_page_table + "m": self.tables.page.join(self.tables.magazine_page), + "c": self.tables.page.join(self.tables.magazine_page).join( + self.tables.classified_page + ), + "p": self.tables.page.select( + self.tables.page.c.type == "p" ), - "p": page_table.select(page_table.c.type == "p"), }, None, "page_join", ) page_mapper = mapper( Page, - page_table, + self.tables.page, with_polymorphic=("*", page_join), polymorphic_on=page_join.c.type, polymorphic_identity="p", ) elif use_joins: - page_join = page_table.outerjoin(magazine_page_table).outerjoin( - classified_page_table - ) + page_join = self.tables.page.outerjoin( + self.tables.magazine_page + ).outerjoin(self.tables.classified_page) page_mapper = mapper( Page, - page_table, + self.tables.page, with_polymorphic=("*", page_join), - polymorphic_on=page_table.c.type, + polymorphic_on=self.tables.page.c.type, polymorphic_identity="p", ) else: page_mapper = mapper( Page, - page_table, - polymorphic_on=page_table.c.type, + self.tables.page, + polymorphic_on=self.tables.page.c.type, polymorphic_identity="p", ) if use_unions: magazine_join = polymorphic_union( { - "m": page_table.join(magazine_page_table), - "c": page_table.join(magazine_page_table).join( - classified_page_table + "m": self.tables.page.join(self.tables.magazine_page), + "c": self.tables.page.join(self.tables.magazine_page).join( + self.tables.classified_page ), }, None, @@ -302,7 +298,7 @@ def _generate_round_trip_test(use_unions=False, use_joins=False): ) magazine_page_mapper = mapper( MagazinePage, - magazine_page_table, + self.tables.magazine_page, with_polymorphic=("*", magazine_join), inherits=page_mapper, polymorphic_identity="m", @@ -316,12 +312,12 @@ def _generate_round_trip_test(use_unions=False, use_joins=False): }, ) elif use_joins: - magazine_join = page_table.join(magazine_page_table).outerjoin( - classified_page_table - ) + magazine_join = self.tables.page.join( + self.tables.magazine_page + ).outerjoin(self.tables.classified_page) magazine_page_mapper = mapper( MagazinePage, - magazine_page_table, + self.tables.magazine_page, with_polymorphic=("*", magazine_join), inherits=page_mapper, polymorphic_identity="m", @@ -329,7 +325,7 @@ def _generate_round_trip_test(use_unions=False, use_joins=False): "magazine": relationship( Magazine, backref=backref( - "pages", order_by=page_table.c.page_no + "pages", order_by=self.tables.page.c.page_no ), ) }, @@ -337,14 +333,14 @@ def _generate_round_trip_test(use_unions=False, use_joins=False): else: magazine_page_mapper = mapper( MagazinePage, - magazine_page_table, + self.tables.magazine_page, inherits=page_mapper, polymorphic_identity="m", properties={ "magazine": relationship( Magazine, backref=backref( - "pages", order_by=page_table.c.page_no + "pages", order_by=self.tables.page.c.page_no ), ) }, @@ -352,10 +348,10 @@ def _generate_round_trip_test(use_unions=False, use_joins=False): classified_page_mapper = mapper( ClassifiedPage, - classified_page_table, + self.tables.classified_page, inherits=magazine_page_mapper, polymorphic_identity="c", - primary_key=[page_table.c.id], + primary_key=[self.tables.page.c.id], ) session = create_session() diff --git a/test/orm/inheritance/test_poly_loading.py b/test/orm/inheritance/test_poly_loading.py index 2a081bf7e..70f869809 100644 --- a/test/orm/inheritance/test_poly_loading.py +++ b/test/orm/inheritance/test_poly_loading.py @@ -104,9 +104,11 @@ class BaseAndSubFixture(object): AllOf( EachOf( CompiledSQL( - "SELECT asub.id AS asub_id, a.id AS a_id, a.type AS a_type, " + "SELECT asub.id AS asub_id, a.id AS a_id, " + "a.type AS a_type, " "asub.asubdata AS asub_asubdata FROM a JOIN asub " - "ON a.id = asub.id WHERE a.id IN ([EXPANDING_primary_keys]) " + "ON a.id = asub.id " + "WHERE a.id IN ([EXPANDING_primary_keys]) " "ORDER BY a.id", {"primary_keys": [2]}, ), diff --git a/test/orm/inheritance/test_poly_persistence.py b/test/orm/inheritance/test_poly_persistence.py index 65b8ff750..c8d22e293 100644 --- a/test/orm/inheritance/test_poly_persistence.py +++ b/test/orm/inheritance/test_poly_persistence.py @@ -517,19 +517,19 @@ def _generate_round_trip_test( for lazy_relationship in [True, False]: for redefine_colprop in [True, False]: - for with_polymorphic in ["unions", "joins", "auto", "none"]: - if with_polymorphic == "unions": + for with_polymorphic_ in ["unions", "joins", "auto", "none"]: + if with_polymorphic_ == "unions": for include_base in [True, False]: _generate_round_trip_test( include_base, lazy_relationship, redefine_colprop, - with_polymorphic, + with_polymorphic_, ) else: _generate_round_trip_test( False, lazy_relationship, redefine_colprop, - with_polymorphic, + with_polymorphic_, ) diff --git a/test/orm/inheritance/test_polymorphic_rel.py b/test/orm/inheritance/test_polymorphic_rel.py index 96f300b88..500d90cfd 100644 --- a/test/orm/inheritance/test_polymorphic_rel.py +++ b/test/orm/inheritance/test_polymorphic_rel.py @@ -1635,10 +1635,10 @@ class _PolymorphicTestBase(object): def test_correlation_one(self): sess = create_session() - # unfortunately this pattern can't yet work for PolymorphicAliased - # and PolymorphicUnions, because the subquery does not compile - # out including the polymorphic selectable; only if Person is in - # the query() list does that happen. + # this for a long time did not work with PolymorphicAliased and + # PolymorphicUnions, which was due to the no_replacement_traverse + # annotation added to query.statement which then went into as_scalar(). + # this is removed as of :ticket:`4304` so now works. eq_( sess.query(Person.name) .filter( diff --git a/test/orm/inheritance/test_single.py b/test/orm/inheritance/test_single.py index b1eb7bb8d..2db1cfb50 100644 --- a/test/orm/inheritance/test_single.py +++ b/test/orm/inheritance/test_single.py @@ -633,7 +633,15 @@ class RelationshipToSingleTest( pass def test_of_type(self): - JuniorEngineer, Company, companies, Manager, Employee, employees, Engineer = ( + ( + JuniorEngineer, + Company, + companies, + Manager, + Employee, + employees, + Engineer, + ) = ( self.classes.JuniorEngineer, self.classes.Company, self.tables.companies, @@ -1044,7 +1052,15 @@ class RelationshipToSingleTest( ) def test_relationship_to_subclass(self): - JuniorEngineer, Company, companies, Manager, Employee, employees, Engineer = ( + ( + JuniorEngineer, + Company, + companies, + Manager, + Employee, + employees, + Engineer, + ) = ( self.classes.JuniorEngineer, self.classes.Company, self.tables.companies, |