summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2019-06-27 10:07:04 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2019-06-27 10:08:36 -0400
commite52eb47e3916284455aed49ce9b658710c6ad8ad (patch)
tree90def53707eb9780ef20c27d1f0870bcff40f689
parent5cf8e14d58c89fdb94c60bf5e94d8b13d296da25 (diff)
downloadsqlalchemy-e52eb47e3916284455aed49ce9b658710c6ad8ad.tar.gz
Remove test-within-a-test structure
These tests in of_type were relying upon generating the polymorphic selectable from the mapper which is proving to be more challenging to correct when that mechanism is changing. Change-Id: I72635fab0f6f3fc7f2b712596db310648f55b04c
-rw-r--r--test/orm/test_of_type.py75
1 files changed, 40 insertions, 35 deletions
diff --git a/test/orm/test_of_type.py b/test/orm/test_of_type.py
index c170026fa..375f70694 100644
--- a/test/orm/test_of_type.py
+++ b/test/orm/test_of_type.py
@@ -4,7 +4,6 @@ from sqlalchemy import ForeignKey
from sqlalchemy import Integer
from sqlalchemy import String
from sqlalchemy import testing
-from sqlalchemy.engine import default
from sqlalchemy.orm import aliased
from sqlalchemy.orm import contains_eager
from sqlalchemy.orm import joinedload
@@ -262,30 +261,33 @@ class PolymorphicPolymorphicTest(
_PolymorphicTestBase, _PolymorphicPolymorphic
):
def _polymorphic_join_target(self, cls):
- from sqlalchemy.orm import class_mapper
-
- from sqlalchemy.sql.expression import FromGrouping
-
- m, sel = class_mapper(Person)._with_polymorphic_args(cls)
- sel = FromGrouping(sel.alias(flat=True))
- comp_sel = sel.compile(dialect=default.DefaultDialect())
-
return (
- comp_sel.process(sel, asfrom=True).replace("\n", "")
- + " ON companies.company_id = people_1.company_id"
+ "(people AS people_1 LEFT OUTER JOIN engineers AS engineers_1 "
+ "ON people_1.person_id = engineers_1.person_id "
+ "LEFT OUTER JOIN managers AS managers_1 "
+ "ON people_1.person_id = managers_1.person_id) "
+ "ON companies.company_id = people_1.company_id"
)
class PolymorphicUnionsTest(_PolymorphicTestBase, _PolymorphicUnions):
def _polymorphic_join_target(self, cls):
- from sqlalchemy.orm import class_mapper
-
- sel = class_mapper(Person)._with_polymorphic_selectable.element
- comp_sel = sel.compile(dialect=default.DefaultDialect())
-
return (
- comp_sel.process(sel, asfrom=True).replace("\n", "")
- + " AS anon_1 ON companies.company_id = anon_1.company_id"
+ "(SELECT engineers.person_id AS person_id, "
+ "people.company_id AS company_id, people.name AS name, "
+ "people.type AS type, engineers.status AS status, "
+ "engineers.engineer_name AS engineer_name, "
+ "engineers.primary_language AS primary_language, "
+ "CAST(NULL AS VARCHAR(50)) AS manager_name FROM people "
+ "JOIN engineers ON people.person_id = engineers.person_id "
+ "UNION ALL SELECT managers.person_id AS person_id, "
+ "people.company_id AS company_id, people.name AS name, "
+ "people.type AS type, managers.status AS status, "
+ "CAST(NULL AS VARCHAR(50)) AS engineer_name, "
+ "CAST(NULL AS VARCHAR(50)) AS primary_language, "
+ "managers.manager_name AS manager_name FROM people "
+ "JOIN managers ON people.person_id = managers.person_id) "
+ "AS anon_1 ON companies.company_id = anon_1.company_id"
)
@@ -293,30 +295,33 @@ class PolymorphicAliasedJoinsTest(
_PolymorphicTestBase, _PolymorphicAliasedJoins
):
def _polymorphic_join_target(self, cls):
- from sqlalchemy.orm import class_mapper
-
- sel = class_mapper(Person)._with_polymorphic_selectable.element
- comp_sel = sel.compile(dialect=default.DefaultDialect())
-
return (
- comp_sel.process(sel, asfrom=True).replace("\n", "")
- + " AS anon_1 ON companies.company_id = anon_1.people_company_id"
+ "(SELECT people.person_id AS people_person_id, "
+ "people.company_id AS people_company_id, "
+ "people.name AS people_name, people.type AS people_type, "
+ "engineers.person_id AS engineers_person_id, "
+ "engineers.status AS engineers_status, "
+ "engineers.engineer_name AS engineers_engineer_name, "
+ "engineers.primary_language AS engineers_primary_language, "
+ "managers.person_id AS managers_person_id, "
+ "managers.status AS managers_status, "
+ "managers.manager_name AS managers_manager_name "
+ "FROM people LEFT OUTER JOIN engineers "
+ "ON people.person_id = engineers.person_id "
+ "LEFT OUTER JOIN managers "
+ "ON people.person_id = managers.person_id) AS anon_1 "
+ "ON companies.company_id = anon_1.people_company_id"
)
class PolymorphicJoinsTest(_PolymorphicTestBase, _PolymorphicJoins):
def _polymorphic_join_target(self, cls):
- from sqlalchemy.orm import class_mapper
- from sqlalchemy.sql.expression import FromGrouping
-
- sel = FromGrouping(
- class_mapper(Person)._with_polymorphic_selectable.alias(flat=True)
- )
- comp_sel = sel.compile(dialect=default.DefaultDialect())
-
return (
- comp_sel.process(sel, asfrom=True).replace("\n", "")
- + " ON companies.company_id = people_1.company_id"
+ "(people AS people_1 LEFT OUTER JOIN engineers "
+ "AS engineers_1 ON people_1.person_id = engineers_1.person_id "
+ "LEFT OUTER JOIN managers AS managers_1 "
+ "ON people_1.person_id = managers_1.person_id) "
+ "ON companies.company_id = people_1.company_id"
)
def test_joinedload_explicit_with_unaliased_poly_compile(self):