.. changelog::
:version: 1.0.10
+ .. change::
+ :tags: bug, orm
+ :pullreq: github:212
+ :versions: 1.1.0b1
+
+ Fixed bug where in Py2K a unicode literal would not be accepted as the
+ string name of a class or other argument within declarative using
+ :func:`.backref` on :func:`.relationship`. Pull request courtesy
+ Nils Philippsen.
+
.. change::
:tags: bug, mssql
:versions: 1.1.0b1
key, kwargs = prop.backref
for attr in ('primaryjoin', 'secondaryjoin', 'secondary',
'foreign_keys', 'remote_side', 'order_by'):
- if attr in kwargs and isinstance(kwargs[attr], str):
+ if attr in kwargs and isinstance(kwargs[attr],
+ util.string_types):
kwargs[attr] = resolve_arg(kwargs[attr])
return prop
assert User.addresses.property.mapper.class_ is Address
+ def test_unicode_string_resolve_backref(self):
+ class User(Base, fixtures.ComparableEntity):
+ __tablename__ = 'users'
+
+ id = Column('id', Integer, primary_key=True,
+ test_needs_autoincrement=True)
+ name = Column('name', String(50))
+
+ class Address(Base, fixtures.ComparableEntity):
+ __tablename__ = 'addresses'
+
+ id = Column(Integer, primary_key=True,
+ test_needs_autoincrement=True)
+ email = Column(String(50), key='_email')
+ user_id = Column('user_id', Integer, ForeignKey('users.id'),
+ key='_user_id')
+ user = relationship(
+ User,
+ backref=backref("addresses",
+ order_by=util.u("Address.email")))
+
+ assert Address.user.property.mapper.class_ is User
+
def test_no_table(self):
def go():
class User(Base):