PYTHON-354 - DateType.deserialize being called with one argument vs two

This commit is contained in:
Alan Boudreault
2016-02-03 15:45:43 -05:00
parent 645f7512f5
commit 81133a3502
2 changed files with 14 additions and 5 deletions

View File

@@ -18,7 +18,7 @@ import logging
import six import six
from cassandra import util from cassandra import util
from cassandra.cqltypes import DateType, SimpleDateType from cassandra.cqltypes import SimpleDateType
from cassandra.cqlengine import ValidationError from cassandra.cqlengine import ValidationError
from cassandra.cqlengine.functions import get_total_seconds from cassandra.cqlengine.functions import get_total_seconds
@@ -435,10 +435,8 @@ class DateTime(Column):
return value return value
elif isinstance(value, date): elif isinstance(value, date):
return datetime(*(value.timetuple()[:6])) return datetime(*(value.timetuple()[:6]))
try:
return datetime.utcfromtimestamp(value) return datetime.utcfromtimestamp(value)
except TypeError:
return datetime.utcfromtimestamp(DateType.deserialize(value))
def to_database(self, value): def to_database(self, value):
value = super(DateTime, self).to_database(value) value = super(DateTime, self).to_database(value)

View File

@@ -88,6 +88,17 @@ class TestDatetime(BaseCassEngTestCase):
dts = self.DatetimeTest.objects.filter(test_id=1).values_list('created_at') dts = self.DatetimeTest.objects.filter(test_id=1).values_list('created_at')
assert dts[0][0] is None assert dts[0][0] is None
def test_datetime_invalid(self):
dt_value= 'INVALID'
with self.assertRaises(TypeError):
self.DatetimeTest.objects.create(test_id=2, created_at=dt_value)
def test_datetime_timestamp(self):
dt_value = 1454520554
self.DatetimeTest.objects.create(test_id=2, created_at=dt_value)
dt2 = self.DatetimeTest.objects(test_id=2).first()
assert dt2.created_at == datetime.utcfromtimestamp(dt_value)
class TestBoolDefault(BaseCassEngTestCase): class TestBoolDefault(BaseCassEngTestCase):
class BoolDefaultValueTest(Model): class BoolDefaultValueTest(Model):