diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2013-11-21 13:30:32 -0500 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2013-11-21 13:30:32 -0500 |
| commit | 2aa00c49d7a1a783ff50832f2de7760bfaaccf6d (patch) | |
| tree | 8cee77853374a0570c562e1b5510bb55da3290ce /test/ext/test_serializer.py | |
| parent | 42fd77a4bfb8c5a1c02c89a17481a90cd039f10e (diff) | |
| download | sqlalchemy-2aa00c49d7a1a783ff50832f2de7760bfaaccf6d.tar.gz | |
- Fixed bug which prevented the ``serializer`` extension from working
correctly with table or column names that contain non-ASCII
characters. [ticket:2869]
Diffstat (limited to 'test/ext/test_serializer.py')
| -rw-r--r-- | test/ext/test_serializer.py | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/test/ext/test_serializer.py b/test/ext/test_serializer.py index 1950bd2d1..ffeac55c1 100644 --- a/test/ext/test_serializer.py +++ b/test/ext/test_serializer.py @@ -1,13 +1,15 @@ +# coding: utf-8 from sqlalchemy.ext import serializer from sqlalchemy import testing from sqlalchemy import Integer, String, ForeignKey, select, \ - desc, func, util + desc, func, util, MetaData from sqlalchemy.testing.schema import Table from sqlalchemy.testing.schema import Column from sqlalchemy.orm import relationship, sessionmaker, scoped_session, \ class_mapper, mapper, joinedload, configure_mappers, aliased -from sqlalchemy.testing import eq_ +from sqlalchemy.testing import eq_, AssertsCompiledSQL +from sqlalchemy.util import u, ue from sqlalchemy.testing import fixtures @@ -19,7 +21,7 @@ class Address(fixtures.ComparableEntity): users = addresses = Session = None -class SerializeTest(fixtures.MappedTest): +class SerializeTest(AssertsCompiledSQL, fixtures.MappedTest): run_setup_mappers = 'once' run_inserts = 'once' @@ -171,6 +173,22 @@ class SerializeTest(fixtures.MappedTest): x = serializer.loads(ser, users.metadata) eq_(str(r), str(x)) + def test_unicode(self): + m = MetaData() + t = Table(ue('\u6e2c\u8a66'), m, + Column(ue('\u6e2c\u8a66_id'), Integer)) + + expr = select([t]).where(t.c[ue('\u6e2c\u8a66_id')] == 5) + + expr2 = serializer.loads(serializer.dumps(expr, -1), m) + + self.assert_compile( + expr2, + ue('SELECT "\u6e2c\u8a66"."\u6e2c\u8a66_id" FROM "\u6e2c\u8a66" ' + 'WHERE "\u6e2c\u8a66"."\u6e2c\u8a66_id" = :\u6e2c\u8a66_id_1'), + dialect="default" + ) + if __name__ == '__main__': testing.main() |
