+#!coding: utf-8
+
"""SQLite-specific tests."""
from sqlalchemy.testing import eq_, assert_raises, \
assert_raises_message
import datetime
-from sqlalchemy import *
+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
'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()
from sqlalchemy.orm import mapper as orm_mapper
import sqlalchemy as sa
+from sqlalchemy.util import u, ue, b
from sqlalchemy import Integer, String, ForeignKey, literal_column, event
from sqlalchemy.testing import engines
from sqlalchemy import testing
mapper(Test, uni_t1)
- txt = "\u0160\u0110\u0106\u010c\u017d"
+ txt = ue("\u0160\u0110\u0106\u010c\u017d")
t1 = Test(id=1, txt=txt)
self.assert_(t1.txt == txt)
't2s': relationship(Test2)})
mapper(Test2, uni_t2)
- txt = "\u0160\u0110\u0106\u010c\u017d"
+ txt = ue("\u0160\u0110\u0106\u010c\u017d")
t1 = Test(txt=txt)
t1.t2s.append(Test2())
t1.t2s.append(Test2())
@classmethod
def define_tables(cls, metadata):
t1 = Table('unitable1', metadata,
- Column('méil', Integer, primary_key=True, key='a', test_needs_autoincrement=True),
- Column('\u6e2c\u8a66', Integer, key='b'),
+ Column(u('méil'), Integer, primary_key=True, key='a', test_needs_autoincrement=True),
+ Column(ue('\u6e2c\u8a66'), Integer, key='b'),
Column('type', String(20)),
test_needs_fk=True,
test_needs_autoincrement=True)
- t2 = Table('Unitéble2', metadata,
- Column('méil', Integer, primary_key=True, key="cc", test_needs_autoincrement=True),
- Column('\u6e2c\u8a66', Integer,
+ t2 = Table(u('Unitéble2'), metadata,
+ Column(u('méil'), Integer, primary_key=True, key="cc", test_needs_autoincrement=True),
+ Column(ue('\u6e2c\u8a66'), Integer,
ForeignKey('unitable1.a'), key="d"),
- Column('\u6e2c\u8a66_2', Integer, key="e"),
+ Column(ue('\u6e2c\u8a66_2'), Integer, key="e"),
test_needs_fk=True,
test_needs_autoincrement=True)
def test_binary_equality(self):
Foo, t1 = self.classes.Foo, self.tables.t1
-
-# start Py3K
- data = b"this is some data"
-# end Py3K
-# start Py2K
-# data = "this is some data"
-# end Py2K
+ data = b("this is some data")
mapper(Foo, t1)
assert assoc.count().scalar() == 2
i.keywords = []
- print(i.keywords)
session.flush()
assert assoc.count().scalar() == 0