summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2013-11-21 15:39:05 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2013-11-21 15:39:05 -0500
commit9499b88f85e814e24c8fac7e0b932d3c9e877ba6 (patch)
tree09f5340ffc56b6943cc7da8d61c5483fc4597426
parent5cdb5f1403e63493643b42fcebe65badce484065 (diff)
downloadsqlalchemy-9499b88f85e814e24c8fac7e0b932d3c9e877ba6.tar.gz
fix [ticket:2868] some more
-rw-r--r--lib/sqlalchemy/sql/elements.py6
-rw-r--r--test/sql/test_unicode.py6
2 files changed, 8 insertions, 4 deletions
diff --git a/lib/sqlalchemy/sql/elements.py b/lib/sqlalchemy/sql/elements.py
index 185458814..f349923ae 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 454bc8f57..8a8cbd06c 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):