Bump metadata version.

Clean up setup.cfg so it doesn't break RPM builds on files which
are no longer included.

Add a test case for warnings for column truncation.

Clean up warnings; was working around the introduced bug that
returned (var)char columns with binary collations as array.

Exposed the column flags (values from constants.FLAG) as
description_flags on the cursor.
This commit is contained in:
adustman
2006-03-05 04:59:14 +00:00
parent 9e4c5ec971
commit 21a3d3397b
6 changed files with 78 additions and 19 deletions

View File

@ -97,11 +97,9 @@ class DatabaseTest(unittest.TestCase):
insert_statement = ('INSERT INTO %s VALUES (%s)' %
(self.table,
','.join(['%s'] * len(columndefs))))
for i in range(self.rows):
data = []
for j in range(len(columndefs)):
data.append(generator(i,j))
self.cursor.execute(insert_statement,tuple(data))
data = [ [ generator(i,j) for j in range(len(columndefs)) ]
for i in range(self.rows) ]
self.cursor.executemany(insert_statement, data)
# verify
self.connection.commit()
self.cursor.execute('select * from %s' % self.table)
@ -123,6 +121,50 @@ class DatabaseTest(unittest.TestCase):
self.failUnless(len(l) == 1, "ROLLBACK didn't work")
self.cursor.execute('drop table %s' % (self.table))
def test_truncation(self):
columndefs = ( 'col1 INT', 'col2 VARCHAR(255)')
def generator(row, col):
if col == 0: return row
else: return ('%i' % (row%10))*((255-self.rows/2)+row)
self.create_table(columndefs)
insert_statement = ('INSERT INTO %s VALUES (%s)' %
(self.table,
','.join(['%s'] * len(columndefs))))
try:
self.cursor.execute(insert_statement, (0, '0'*256))
except Warning:
if self.debug: print self.cursor.messages
else:
self.fail("Over-long column did not generate warnings with single insert")
self.connection.rollback()
try:
for i in range(self.rows):
data = []
for j in range(len(columndefs)):
data.append(generator(i,j))
self.cursor.execute(insert_statement,tuple(data))
except Warning:
if self.debug: print self.cursor.messages
else:
self.fail("Over-long columns did not generate warnings with execute()")
self.connection.rollback()
try:
data = [ [ generator(i,j) for j in range(len(columndefs)) ]
for i in range(self.rows) ]
self.cursor.executemany(insert_statement, data)
except Warning:
if self.debug: print self.cursor.messages
else:
self.fail("Over-long columns did not generate warnings with executemany()")
self.connection.rollback()
self.cursor.execute('drop table %s' % (self.table))
def test_CHAR(self):
# Character data
def generator(row,col):