From: Mike Bayer Date: Thu, 21 Nov 2013 20:39:05 +0000 (-0500) Subject: fix [ticket:2868] some more X-Git-Tag: rel_0_9_0~109 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9499b88f85e814e24c8fac7e0b932d3c9e877ba6;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git fix [ticket:2868] some more --- diff --git a/lib/sqlalchemy/sql/elements.py b/lib/sqlalchemy/sql/elements.py index 1854588141..f349923ae9 100644 --- a/lib/sqlalchemy/sql/elements.py +++ b/lib/sqlalchemy/sql/elements.py @@ -2320,7 +2320,6 @@ class quoted_name(util.text_type): """ - #def __new__(cls, value, quote, sprcls=False): def __new__(cls, value, quote): if value is None: return None @@ -2355,7 +2354,10 @@ class quoted_name(util.text_type): return util.text_type(self).upper() def __repr__(self): - return util.text_type.__repr__(self) + backslashed = self.encode('ascii', 'backslashreplace') + if not util.py2k: + backslashed = backslashed.decode('ascii') + return "'%s'" % backslashed class _truncated_label(quoted_name): """A unicode subclass used to identify symbolic " diff --git a/test/sql/test_unicode.py b/test/sql/test_unicode.py index 454bc8f57b..8a8cbd06cd 100644 --- a/test/sql/test_unicode.py +++ b/test/sql/test_unicode.py @@ -119,11 +119,13 @@ class UnicodeSchemaTest(fixtures.TestBase): m = MetaData() t = Table(ue('\u6e2c\u8a66'), m, Column(ue('\u6e2c\u8a66_id'), Integer)) + # I hardly understand what's going on with the backslashes in + # this one on py2k vs. py3k eq_( repr(t), ( - "Table(u'\\u6e2c\\u8a66', MetaData(bind=None), " - "Column(u'\\u6e2c\\u8a66_id', Integer(), table=<\\u6e2c\\u8a66>), " + "Table('\\u6e2c\\u8a66', MetaData(bind=None), " + "Column('\\u6e2c\\u8a66_id', Integer(), table=<\u6e2c\u8a66>), " "schema=None)")) class EscapesDefaultsTest(fixtures.TestBase):