--- a/server/test/unittest_querier.py Mon Mar 08 09:51:29 2010 +0100
+++ b/server/test/unittest_querier.py Mon Mar 08 17:57:29 2010 +0100
@@ -35,7 +35,7 @@
SQL_CONNECT_HOOKS['sqlite'].append(init_sqlite_connexion)
-from logilab.common.adbh import _GenericAdvFuncHelper
+from logilab.db import _GenericAdvFuncHelper
TYPEMAP = _GenericAdvFuncHelper.TYPE_MAPPING
class MakeSchemaTC(TestCase):
@@ -397,6 +397,18 @@
rset = self.execute('Note X WHERE NOT Y evaluee X')
self.assertEquals(len(rset.rows), 1, rset.rows)
+ def test_select_date_extraction(self):
+ self.execute("INSERT Personne X: X nom 'foo', X datenaiss %(d)s",
+ {'d': datetime(2001, 2,3, 12,13)})
+ test_data = [('YEAR', 2001), ('MONTH', 2), ('DAY', 3),
+ ('HOUR', 12), ('MINUTE', 13)]
+ for funcname, result in test_data:
+ rset = self.execute('Any %s(D) WHERE X is Personne, X datenaiss D'
+ % funcname)
+ self.assertEquals(len(rset.rows), 1)
+ self.assertEquals(rset.rows[0][0], result)
+ self.assertEquals(rset.description, [('Int',)])
+
def test_select_aggregat_count(self):
rset = self.execute('Any COUNT(X)')
self.assertEquals(len(rset.rows), 1)
@@ -430,7 +442,7 @@
self.assertEquals(rset.description, [('Int',)])
def test_select_custom_aggregat_concat_string(self):
- rset = self.execute('Any CONCAT_STRINGS(N) WHERE X is CWGroup, X name N')
+ rset = self.execute('Any GROUP_CONCAT(N) WHERE X is CWGroup, X name N')
self.failUnless(rset)
self.failUnlessEqual(sorted(rset[0][0].split(', ')), ['guests', 'managers',
'owners', 'users'])