server/test/unittest_querier.py
changeset 11034 75d752e6daf7
parent 11032 38afb7e23c6c
child 11035 0fb100e8385b
equal deleted inserted replaced
11033:63d860a14a17 11034:75d752e6daf7
    18 # with CubicWeb.  If not, see <http://www.gnu.org/licenses/>.
    18 # with CubicWeb.  If not, see <http://www.gnu.org/licenses/>.
    19 """unit tests for modules cubicweb.server.querier and cubicweb.server.ssplanner
    19 """unit tests for modules cubicweb.server.querier and cubicweb.server.ssplanner
    20 """
    20 """
    21 
    21 
    22 from datetime import date, datetime, timedelta, tzinfo
    22 from datetime import date, datetime, timedelta, tzinfo
       
    23 
       
    24 import pytz
    23 
    25 
    24 from six import PY2, integer_types, binary_type, text_type
    26 from six import PY2, integer_types, binary_type, text_type
    25 from logilab.common.testlib import TestCase, unittest_main
    27 from logilab.common.testlib import TestCase, unittest_main
    26 from rql import BadRQLQuery, RQLSyntaxError
    28 from rql import BadRQLQuery, RQLSyntaxError
    27 
    29 
   853         self.qexecute("INSERT Personne X: X nom 'bidule', X datenaiss NOW, X tzdatenaiss NOW")
   855         self.qexecute("INSERT Personne X: X nom 'bidule', X datenaiss NOW, X tzdatenaiss NOW")
   854         rset = self.qexecute('Any MAX(D) WHERE X is Personne, X datenaiss D')
   856         rset = self.qexecute('Any MAX(D) WHERE X is Personne, X datenaiss D')
   855         self.assertIsInstance(rset[0][0], datetime)
   857         self.assertIsInstance(rset[0][0], datetime)
   856         rset = self.qexecute('Any MAX(D) WHERE X is Personne, X tzdatenaiss D')
   858         rset = self.qexecute('Any MAX(D) WHERE X is Personne, X tzdatenaiss D')
   857         self.assertIsInstance(rset[0][0], datetime)
   859         self.assertIsInstance(rset[0][0], datetime)
       
   860         self.assertEqual(rset[0][0].tzinfo, pytz.utc)
   858 
   861 
   859     def test_today(self):
   862     def test_today(self):
   860         self.qexecute("INSERT Tag X: X name 'bidule', X creation_date TODAY")
   863         self.qexecute("INSERT Tag X: X name 'bidule', X creation_date TODAY")
   861         self.qexecute("INSERT Tag Y: Y name 'toto'")
   864         self.qexecute("INSERT Tag Y: Y name 'toto'")
   862         rset = self.qexecute('Tag X WHERE X creation_date TODAY')
   865         rset = self.qexecute('Tag X WHERE X creation_date TODAY')
  1396 
  1399 
  1397     def test_tz_datetime(self):
  1400     def test_tz_datetime(self):
  1398         self.qexecute("INSERT Personne X: X nom 'bob', X tzdatenaiss %(date)s",
  1401         self.qexecute("INSERT Personne X: X nom 'bob', X tzdatenaiss %(date)s",
  1399                      {'date': datetime(1977, 6, 7, 2, 0, tzinfo=FixedOffset(1))})
  1402                      {'date': datetime(1977, 6, 7, 2, 0, tzinfo=FixedOffset(1))})
  1400         datenaiss = self.qexecute("Any XD WHERE X nom 'bob', X tzdatenaiss XD")[0][0]
  1403         datenaiss = self.qexecute("Any XD WHERE X nom 'bob', X tzdatenaiss XD")[0][0]
  1401         self.assertEqual(datenaiss.tzinfo, None)
  1404         self.assertIsNotNone(datenaiss.tzinfo)
  1402         self.assertEqual(datenaiss.utctimetuple()[:5], (1977, 6, 7, 1, 0))
  1405         self.assertEqual(datenaiss.utctimetuple()[:5], (1977, 6, 7, 1, 0))
  1403 
  1406 
  1404     def test_tz_datetime_cache_nonregr(self):
  1407     def test_tz_datetime_cache_nonregr(self):
  1405         datenaiss = datetime(1977, 6, 7, 2, 0, tzinfo=FixedOffset(1))
  1408         datenaiss = datetime(1977, 6, 7, 2, 0, tzinfo=FixedOffset(1))
  1406         self.qexecute("INSERT Personne X: X nom 'bob', X tzdatenaiss %(date)s",
  1409         self.qexecute("INSERT Personne X: X nom 'bob', X tzdatenaiss %(date)s",