0.0.9 Fixes datepart

This commit is contained in:
2014-12-01 11:02:56 +01:00
parent 0563b393f6
commit 3b13216572
2 changed files with 7 additions and 7 deletions

View File

@@ -2,7 +2,7 @@ from __future__ import unicode_literals
import datetime import datetime
import copy import copy
VERSION = "0.0.8" VERSION = "0.0.9"
class classproperty(object): class classproperty(object):
@@ -156,10 +156,10 @@ class Q(QMixin):
if lookup in ['year', 'month', 'day', 'hour', 'minute', 'second']: if lookup in ['year', 'month', 'day', 'hour', 'minute', 'second']:
if arr: if arr:
column = "DATEPART('{0}', {1})__{2}".format(lookup, column, arr.pop(0)) column = "DATEPART({0}, {1})__{2}".format(lookup, column, arr.pop(0))
return self._process(column, value) return self._process(column, value)
else: else:
return "DATEPART('{0}', {1})={2}".format(lookup, column, value) return "DATEPART({0}, {1})={2}".format(lookup, column, value)
if lookup in self.op_map.keys(): if lookup in self.op_map.keys():
return "{0}{1}{2}".format(column, self.op_map[lookup], self._get_value(value)) return "{0}{1}{2}".format(column, self.op_map[lookup], self._get_value(value))

View File

@@ -28,8 +28,8 @@ class TestSqlBuilder(unittest.TestCase):
date = datetime.datetime(2010, 1, 15, 23, 59, 38) date = datetime.datetime(2010, 1, 15, 23, 59, 38)
self.assertEqual(str(Q(fecha=date)), "(fecha='2010-01-15 23:59:38')") self.assertEqual(str(Q(fecha=date)), "(fecha='2010-01-15 23:59:38')")
self.assertEqual(str(Q(fecha__year__lte=2012)), "(DATEPART('year', fecha)<=2012)") self.assertEqual(str(Q(fecha__year__lte=2012)), "(DATEPART(year, fecha)<=2012)")
self.assertEqual(str(Q(fecha__year=2012)), "(DATEPART('year', fecha)=2012)") self.assertEqual(str(Q(fecha__year=2012)), "(DATEPART(year, fecha)=2012)")
def test_limits(self): def test_limits(self):
self.assertEqual(Queryset("table")[:10].get_limits(), "LIMIT 10") self.assertEqual(Queryset("table")[:10].get_limits(), "LIMIT 10")
@@ -58,13 +58,13 @@ class TestSqlBuilder(unittest.TestCase):
sql = sql.exclude(date__year__lte=1977) sql = sql.exclude(date__year__lte=1977)
sql = sql.values("name", "date") sql = sql.values("name", "date")
self.assertEqual( self.assertEqual(
str(sql), "SELECT name, date FROM users WHERE ((name='jhon') AND NOT (DATEPART('year', date)<=1977))") str(sql), "SELECT name, date FROM users WHERE ((name='jhon') AND NOT (DATEPART(year, date)<=1977))")
sql = sql.values("name", "date", "tlf") sql = sql.values("name", "date", "tlf")
sql.filter(name="not") sql.filter(name="not")
sql.filter(name="not") sql.filter(name="not")
self.assertEqual( self.assertEqual(
str(sql), "SELECT name, date, tlf FROM users WHERE ((name='jhon') AND NOT (DATEPART('year', date)<=1977))") str(sql), "SELECT name, date, tlf FROM users WHERE ((name='jhon') AND NOT (DATEPART(year, date)<=1977))")
def test_extra(self): def test_extra(self):
sql = Queryset("users").values("name", "date", "tlf") sql = Queryset("users").values("name", "date", "tlf")