from sqlalchemy import *
from sqlalchemy.test import *
NUM_FIELDS = 10
NUM_RECORDS = 1000
class ResultSetTest(TestBase, AssertsExecutionResults):
__only_on__ = 'sqlite'
@classmethod
def setup_class(cls):
global t, t2, metadata
metadata = MetaData(testing.db)
t = Table('table', metadata, *[Column("field%d" % fnum, String) for fnum in range(NUM_FIELDS)])
t2 = Table('table2', metadata, *[Column("field%d" % fnum, Unicode) for fnum in range(NUM_FIELDS)])
def setup(self):
metadata.create_all()
t.insert().execute(
[dict(("field%d" % fnum, u"value%d" % fnum)
for fnum in range(NUM_FIELDS)) for r_num in range(NUM_RECORDS)]
)
t2.insert().execute(
[dict(("field%d" % fnum, u"value%d" % fnum)
for fnum in range(NUM_FIELDS)) for r_num in range(NUM_RECORDS)]
)
def teardown(self):
metadata.drop_all()
@profiling.function_call_count(14416, versions={'2.4':13214, '2.6+cextension':409})
def test_string(self):
[tuple(row) for row in t.select().execute().fetchall()]
# sqlite3 returns native unicode. so shouldn't be an
# increase here.
@profiling.function_call_count(14396, versions={'2.4':13214, '2.6+cextension':409})
def test_unicode(self):
[tuple(row) for row in t2.select().execute().fetchall()]
|