.. changelog::
:version: 0.9.1
+ .. change::
+ :tags: bug, orm
+ :tickets: 2901
+
+ Fixed regression where we don't check the given name against the
+ correct string class when setting up a backref based on a name,
+ therefore causing the error "too many values to unpack". This was
+ related to the Py3k conversion.
+
.. change::
:tags: bug, orm, declarative
:tickets: 2900
if not self.is_primary():
return
if self.backref is not None and not self.back_populates:
- if isinstance(self.backref, str):
+ if isinstance(self.backref, util.string_types):
backref_key, kwargs = self.backref, {}
else:
backref_key, kwargs = self.backref
})
assert User.addresses.property is m.get_property('addresses')
+ def test_unicode_relationship_backref_names(self):
+ # test [ticket:2901]
+ users, Address, addresses, User = (self.tables.users,
+ self.classes.Address,
+ self.tables.addresses,
+ self.classes.User)
+
+ mapper(Address, addresses)
+ mapper(User, users, properties={
+ util.u('addresses'): relationship(Address, backref=util.u('user'))
+ })
+ u1 = User()
+ a1 = Address()
+ u1.addresses.append(a1)
+ assert a1.user is u1
+
def test_configure_on_prop_1(self):
users, Address, addresses, User = (self.tables.users,
self.classes.Address,