]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
fix [ticket:2868] some more
authorMike Bayer <mike_mp@zzzcomputing.com>
Thu, 21 Nov 2013 20:39:05 +0000 (15:39 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Thu, 21 Nov 2013 20:39:05 +0000 (15:39 -0500)
lib/sqlalchemy/sql/elements.py
test/sql/test_unicode.py

index 1854588141f7f48f87d4eff057fd2d2b1c985183..f349923ae99e45faf0e8f06d2b48b6aab5dd8538 100644 (file)
@@ -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 "
index 454bc8f57bf01c28dcd37f51b27b508e3dda2545..8a8cbd06cd1e65cea53f145a7f6a4c0bd9d474e9 100644 (file)
@@ -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):