only be specified if querying for one specific subtype only
"""
primary_mapper = _class_to_mapper(base)
+
+ if selectable not in (None, False) and flat:
+ raise sa_exc.ArgumentError(
+ "the 'flat' and 'selectable' arguments cannot be passed "
+ "simultaneously to with_polymorphic()"
+ )
+
if _existing_alias:
assert _existing_alias.mapper is primary_mapper
classes = util.to_set(classes)
from sqlalchemy import and_
+from sqlalchemy import exc
from sqlalchemy import or_
from sqlalchemy import testing
from sqlalchemy.orm import create_session
from ._poly_fixtures import Person
+class WithPolymorphicAPITest(_Polymorphic, _PolymorphicFixtureBase):
+ def test_no_use_flat_and_aliased(self):
+ sess = create_session()
+
+ subq = sess.query(Person).subquery()
+
+ testing.assert_raises_message(
+ exc.ArgumentError,
+ "the 'flat' and 'selectable' arguments cannot be passed "
+ "simultaneously to with_polymorphic()",
+ with_polymorphic, Person, [Engineer],
+ selectable=subq, flat=True
+ )
+
+
class _WithPolymorphicBase(_PolymorphicFixtureBase):
def test_join_base_to_sub(self):
sess = create_session()