--- a/server/test/unittest_querier.py Fri Apr 01 14:38:16 2011 +0200
+++ b/server/test/unittest_querier.py Fri Apr 01 15:04:47 2011 +0200
@@ -18,7 +18,7 @@
# with CubicWeb. If not, see <http://www.gnu.org/licenses/>.
"""unit tests for modules cubicweb.server.querier and cubicweb.server.ssplanner
"""
-from datetime import date, datetime
+from datetime import date, datetime, timedelta, tzinfo
from logilab.common.testlib import TestCase, unittest_main
from rql import BadRQLQuery, RQLSyntaxError
@@ -32,6 +32,14 @@
from cubicweb.devtools.repotest import tuplify, BaseQuerierTC
from unittest_session import Variable
+class FixedOffset(tzinfo):
+ def __init__(self, hours=0):
+ self.hours = hours
+ def utcoffset(self, dt):
+ return timedelta(hours=self.hours)
+ def dst(self, dt):
+ return timedelta(0)
+
# register priority/severity sorting registered procedure
from rql.utils import register_function, FunctionDescr
@@ -1215,11 +1223,11 @@
self.assertEqual(rset.description, [('CWUser',)])
def test_update_upassword(self):
- cursor = self.pool['system']
rset = self.execute("INSERT CWUser X: X login 'bob', X upassword %(pwd)s", {'pwd': 'toto'})
self.assertEqual(rset.description[0][0], 'CWUser')
rset = self.execute("SET X upassword %(pwd)s WHERE X is CWUser, X login 'bob'",
{'pwd': 'tutu'})
+ cursor = self.pool['system']
cursor.execute("SELECT %supassword from %sCWUser WHERE %slogin='bob'"
% (SQL_PREFIX, SQL_PREFIX, SQL_PREFIX))
passwd = str(cursor.fetchone()[0])
@@ -1229,7 +1237,15 @@
self.assertEqual(len(rset.rows), 1)
self.assertEqual(rset.description, [('CWUser',)])
- # non regression tests ####################################################
+ # ZT datetime tests ########################################################
+
+ def test_tz_datetime(self):
+ self.execute("INSERT Personne X: X nom 'bob', X tzdatenaiss %(date)s",
+ {'date': datetime(1977, 6, 7, 2, 0, tzinfo=FixedOffset(1))})
+ datenaiss = self.execute("Any XD WHERE X nom 'bob', X tzdatenaiss XD")[0][0]
+ self.assertEqual(datenaiss.utctimetuple()[:5], (1977, 6, 7, 1, 0))
+
+ # non regression tests #####################################################
def test_nonregr_1(self):
teid = self.execute("INSERT Tag X: X name 'tag'")[0][0]