diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2013-11-21 13:16:49 -0500 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2013-11-21 13:16:49 -0500 |
| commit | 42fd77a4bfb8c5a1c02c89a17481a90cd039f10e (patch) | |
| tree | 4855d37ab96ba5ba0b46976fa31a16df32e7fe1f | |
| parent | 13b6ddc823bb9f8b80dca2ee85d673a6a77145b8 (diff) | |
| download | sqlalchemy-42fd77a4bfb8c5a1c02c89a17481a90cd039f10e.tar.gz | |
- Fixed a regression caused by :ticket:`2812` where the repr() for
table and column names would fail if the name contained non-ascii
characters. [ticket:2868]
| -rw-r--r-- | doc/build/changelog/changelog_09.rst | 8 | ||||
| -rw-r--r-- | lib/sqlalchemy/sql/elements.py | 2 | ||||
| -rw-r--r-- | test/sql/test_unicode.py | 14 |
3 files changed, 22 insertions, 2 deletions
diff --git a/doc/build/changelog/changelog_09.rst b/doc/build/changelog/changelog_09.rst index 6081951ec..ae6206b2f 100644 --- a/doc/build/changelog/changelog_09.rst +++ b/doc/build/changelog/changelog_09.rst @@ -15,6 +15,14 @@ :version: 0.9.0b2 .. change:: + :tags: bug, schema + :tickets: 2868 + + Fixed a regression caused by :ticket:`2812` where the repr() for + table and column names would fail if the name contained non-ascii + characters. + + .. change:: :tags: bug, engine :tickets: 2848 diff --git a/lib/sqlalchemy/sql/elements.py b/lib/sqlalchemy/sql/elements.py index 5058b90e0..185458814 100644 --- a/lib/sqlalchemy/sql/elements.py +++ b/lib/sqlalchemy/sql/elements.py @@ -2355,7 +2355,7 @@ class quoted_name(util.text_type): return util.text_type(self).upper() def __repr__(self): - return "'%s'" % self + return util.text_type.__repr__(self) 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 ffcef903f..454bc8f57 100644 --- a/test/sql/test_unicode.py +++ b/test/sql/test_unicode.py @@ -2,7 +2,7 @@ """verrrrry basic unicode column name testing""" from sqlalchemy import * -from sqlalchemy.testing import fixtures, engines +from sqlalchemy.testing import fixtures, engines, eq_ from sqlalchemy import testing from sqlalchemy.testing.engines import utf8_engine from sqlalchemy.sql import column @@ -114,6 +114,18 @@ class UnicodeSchemaTest(fixtures.TestBase): meta.drop_all() metadata.create_all() + def test_repr(self): + + m = MetaData() + t = Table(ue('\u6e2c\u8a66'), m, Column(ue('\u6e2c\u8a66_id'), Integer)) + + eq_( + repr(t), + ( + "Table(u'\\u6e2c\\u8a66', MetaData(bind=None), " + "Column(u'\\u6e2c\\u8a66_id', Integer(), table=<\\u6e2c\\u8a66>), " + "schema=None)")) + class EscapesDefaultsTest(fixtures.TestBase): def test_default_exec(self): metadata = MetaData(testing.db) |
