diff options
Diffstat (limited to 'test/dialect/test_sqlite.py')
-rw-r--r-- | test/dialect/test_sqlite.py | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/test/dialect/test_sqlite.py b/test/dialect/test_sqlite.py index 97962a54a..4ede13ff6 100644 --- a/test/dialect/test_sqlite.py +++ b/test/dialect/test_sqlite.py @@ -1,10 +1,17 @@ +#!coding: utf-8 + """SQLite-specific tests.""" from sqlalchemy.testing import eq_, assert_raises, \ assert_raises_message import datetime -from sqlalchemy import * -from sqlalchemy import exc, sql, schema, pool, types as sqltypes +from sqlalchemy import Table, String, select, Text, CHAR, bindparam, Column,\ + Unicode, Date, MetaData, UnicodeText, Time, Integer, TIMESTAMP, \ + Boolean, func, NUMERIC, DateTime, extract, ForeignKey, text, Numeric,\ + DefaultClause, and_, DECIMAL, TypeDecorator, create_engine, Float, \ + INTEGER, UniqueConstraint, DATETIME, DATE, TIME, BOOLEAN +from sqlalchemy.util import u, ue +from sqlalchemy import exc, sql, schema, pool, types as sqltypes, util from sqlalchemy.dialects.sqlite import base as sqlite, \ pysqlite as pysqlite_dialect from sqlalchemy.engine.url import make_url @@ -84,7 +91,7 @@ class TestTypes(fixtures.TestBase, AssertsExecutionResults): eq_(row, (1, datetime.date(2010, 5, 10), datetime.datetime( 2010, 5, 10, 12, 15, 25, ))) r = engine.execute(func.current_date()).scalar() - assert isinstance(r, basestring) + assert isinstance(r, util.string_types) finally: t.drop(engine) engine.dispose() @@ -104,8 +111,8 @@ class TestTypes(fixtures.TestBase, AssertsExecutionResults): UnicodeText(), ): bindproc = t.dialect_impl(dialect).bind_processor(dialect) - assert not bindproc or isinstance(bindproc(u'some string'), - unicode) + assert not bindproc or \ + isinstance(bindproc(util.u('some string')), util.text_type) @testing.provide_metadata def test_type_reflection(self): @@ -485,6 +492,20 @@ class DialectTest(fixtures.TestBase, AssertsExecutionResults): 'constrained_columns': ['tid'] }]) + @testing.provide_metadata + def test_description_encoding(self): + # amazingly, pysqlite seems to still deliver cursor.description + # as encoded bytes in py2k + + t = Table('x', self.metadata, + Column(u('méil'), Integer, primary_key=True), + Column(ue('\u6e2c\u8a66'), Integer), + ) + self.metadata.create_all(testing.db) + + result = testing.db.execute(t.select()) + assert u('méil') in result.keys() + assert ue('\u6e2c\u8a66') in result.keys() def test_attached_as_schema(self): cx = testing.db.connect() @@ -566,7 +587,7 @@ class DialectTest(fixtures.TestBase, AssertsExecutionResults): eq_(inspector.get_indexes('foo'), []) eq_(inspector.get_indexes('foo', include_auto_indexes=True), [{'unique': 1, 'name' - : u'sqlite_autoindex_foo_1', 'column_names': [u'bar']}]) + : 'sqlite_autoindex_foo_1', 'column_names': ['bar']}]) finally: meta.drop_all() |