summaryrefslogtreecommitdiff
path: root/test/orm/inheritance
diff options
context:
space:
mode:
Diffstat (limited to 'test/orm/inheritance')
-rw-r--r--test/orm/inheritance/test_assorted_poly.py7
-rw-r--r--test/orm/inheritance/test_basic.py5
-rw-r--r--test/orm/inheritance/test_concrete.py3
-rw-r--r--test/orm/inheritance/test_magazine.py88
-rw-r--r--test/orm/inheritance/test_poly_loading.py6
-rw-r--r--test/orm/inheritance/test_poly_persistence.py8
-rw-r--r--test/orm/inheritance/test_polymorphic_rel.py8
-rw-r--r--test/orm/inheritance/test_single.py20
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,