+0.4.0beta4
+- fix to bind param processing such that "False" values (like blank strings)
+ still get processed/encoded
+
0.4.0beta3
- sql types optimization:
- new performance tests show a combined mass-insert/mass-select test
def get_original_dict(self):
return dict([(name, value) for (b, name, value) in self.__binds.values()])
+ def __get_processed(self, key, processors):
+ if key in processors:
+ return processors[key](self.__binds[key][2])
+ else:
+ return self.__binds[key][2]
+
def get_raw_list(self, processors):
-# (bind, name, value) = self.__binds[key]
- return [
- (key in processors) and
- processors[key](self.__binds[key][2]) or
- self.__binds[key][2]
- for key in self.positional
- ]
+ return [self.__get_processed(key, processors) for key in self.positional]
def get_raw_dict(self, processors, encode_keys=False):
if encode_keys:
return dict([
(
key.encode(self.dialect.encoding),
- (key in processors) and
- processors[key](self.__binds[key][2]) or
- self.__binds[key][2]
+ self.__get_processed(key, processors)
)
for key in self.keys()
])
return dict([
(
key,
- (key in processors) and
- processors[key](self.__binds[key][2]) or
- self.__binds[key][2]
+ self.__get_processed(key, processors)
)
for key in self.keys()
])
unicode_table.create()
def tearDownAll(self):
unicode_table.drop()
-
+
+ def tearDown(self):
+ unicode_table.delete().execute()
+
def testbasic(self):
assert unicode_table.c.unicode_varchar.type.length == 250
rawdata = 'Alors vous imaginez ma surprise, au lever du jour, quand une dr\xc3\xb4le de petit voix m\xe2\x80\x99a r\xc3\xa9veill\xc3\xa9. Elle disait: \xc2\xab S\xe2\x80\x99il vous pla\xc3\xaet\xe2\x80\xa6 dessine-moi un mouton! \xc2\xbb\n'
else:
self.assert_(not isinstance(x['plain_varchar'], unicode) and x['plain_varchar'] == rawdata)
+ def testblanks(self):
+ unicode_table.insert().execute(unicode_varchar=u'')
+ assert select([unicode_table.c.unicode_varchar]).scalar() == u''
+
def testengineparam(self):
"""tests engine-wide unicode conversion"""
prev_unicode = testbase.db.engine.dialect.convert_unicode