"""
if self.non_primary:
+ if not hasattr(self.class_, '_class_state'):
+ raise exceptions.InvalidRequestError("Class %s has no primary mapper configured. Configure a primary mapper first before setting up a non primary Mapper.")
self._class_state = self.class_._class_state
_mapper_registry[self] = True
return
use_selectable = use_selectable.alias()
if prop._is_self_referential() and not create_aliases and not use_selectable:
- raise exceptions.InvalidRequestError("Self-referential query on '%s' property requires create_aliases=True argument." % str(prop))
+ raise exceptions.InvalidRequestError("Self-referential query on '%s' property requires aliased=True argument." % str(prop))
if prop.select_table not in currenttables or create_aliases or use_selectable:
if prop.secondary:
sess.query(T).join('children').select_by(id=7)
assert False
except exceptions.InvalidRequestError, e:
- assert str(e) == "Self-referential query on 'T.children (T)' property requires create_aliases=True argument.", str(e)
+ assert str(e) == "Self-referential query on 'T.children (T)' property requires aliased=True argument.", str(e)
try:
sess.query(T).join(['children']).select_by(id=7)
assert False
except exceptions.InvalidRequestError, e:
- assert str(e) == "Self-referential query on 'T.children (T)' property requires create_aliases=True argument.", str(e)
+ assert str(e) == "Self-referential query on 'T.children (T)' property requires aliased=True argument.", str(e)
except exceptions.ArgumentError, e:
assert "Attempting to assign a new relation 'addresses' to a non-primary mapper on class 'User'" in str(e)
+ def test_illegal_non_primary_2(self):
+ try:
+ mapper(User, users, non_primary=True)
+ assert False
+ except exceptions.InvalidRequestError, e:
+ assert "Configure a primary mapper first" in str(e)
+
def test_propfilters(self):
t = Table('person', MetaData(),
Column('id', Integer, primary_key=True),
assert [Address(id=2), Address(id=3), Address(id=4)] == sess.query(Address).filter(Address.user.has(User.name.like('%ed%'), id=8)).all()
+ dingaling = sess.query(Dingaling).get(2)
+ assert [User(id=9)] == sess.query(User).filter(User.addresses.any(Address.dingaling==dingaling)).all()
+
def test_contains_m2m(self):
sess = create_session()
item = sess.query(Item).get(3)