summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSylvain Thenault <sylvain.thenault@logilab.fr>2009-01-05 13:13:52 +0100
committerSylvain Thenault <sylvain.thenault@logilab.fr>2009-01-05 13:13:52 +0100
commit8419831b3f6995b060da1b1efc46da452e2f45d9 (patch)
tree72a68840b8b25a7c6f18e726cbdae5eaa65dcef6
parent0c7542c333a12aae890876f4b7ee7b0098747813 (diff)
downloadlogilab-common-8419831b3f6995b060da1b1efc46da452e2f45d9.tar.gz
fix Datetime type map for mysql as suggested by 2web, avoiding timestamp auto update
-rw-r--r--adbh.py2
-rw-r--r--test/unittest_adbh.py34
2 files changed, 36 insertions, 0 deletions
diff --git a/adbh.py b/adbh.py
index 7aeb1e4..7374172 100644
--- a/adbh.py
+++ b/adbh.py
@@ -465,6 +465,8 @@ class _MyAdvFuncHelper(_GenericAdvFuncHelper):
TYPE_MAPPING['Password'] = 'tinyblob'
TYPE_MAPPING['String'] = 'mediumtext'
TYPE_MAPPING['Bytes'] = 'longblob'
+ # don't use timestamp which is automatically updated on row update
+ TYPE_MAPPING['Datetime'] = 'datetime'
def system_database(self):
"""return the system database for the given driver"""
diff --git a/test/unittest_adbh.py b/test/unittest_adbh.py
new file mode 100644
index 0000000..5c054d2
--- /dev/null
+++ b/test/unittest_adbh.py
@@ -0,0 +1,34 @@
+
+from logilab.common.testlib import TestCase, unittest_main
+
+from logilab.common.adbh import get_adv_func_helper
+
+
+class PGHelperTC(TestCase):
+ driver = 'postgres'
+ def setUp(self):
+ self.helper = get_adv_func_helper(self.driver)
+
+ def test_type_map(self):
+ self.assertEquals(self.helper.TYPE_MAPPING['Datetime'], 'timestamp')
+ self.assertEquals(self.helper.TYPE_MAPPING['String'], 'text')
+ self.assertEquals(self.helper.TYPE_MAPPING['Password'], 'bytea')
+ self.assertEquals(self.helper.TYPE_MAPPING['Bytes'], 'bytea')
+
+
+class SQLITEHelperTC(PGHelperTC):
+ driver = 'sqlite'
+
+
+class MYHelperTC(PGHelperTC):
+ driver = 'mysql'
+
+ def test_type_map(self):
+ self.assertEquals(self.helper.TYPE_MAPPING['Datetime'], 'datetime')
+ self.assertEquals(self.helper.TYPE_MAPPING['String'], 'mediumtext')
+ self.assertEquals(self.helper.TYPE_MAPPING['Password'], 'tinyblob')
+ self.assertEquals(self.helper.TYPE_MAPPING['Bytes'], 'longblob')
+
+
+if __name__ == '__main__':
+ unittest_main()