Fix date serialization (#873)

* [panoramix] -> [dashed]

* merge from caravel/master

* Updated from airbnb

* Cleaning

* Rebase with upstream/master

* merge from caravel/master

* Updated from airbnb

* Cleaning

* Manual rebase

* Last pending change to rebase

* Convert date to datetime before serialization.
Approach choosen: transform data before serialize and keep just one way to serialize

* Unit test created

* stupid error :(

* remove uneeded code and rename test

* Avoid double type checking
Test updated
note: isinstance(<datetime>, <date>) == True, check order changed

* Increase coverage

* Fix assertRaises
This commit is contained in:
Gustavo Brian
2016-08-11 08:13:59 +02:00
committed by Maxime Beauchemin
parent 2bfb9cc7dd
commit 198226a39f
2 changed files with 22 additions and 1 deletions

View File

@@ -4,7 +4,7 @@ from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
from datetime import datetime
from datetime import datetime, date
import decimal
import functools
import json
@@ -318,6 +318,8 @@ def json_int_dttm_ser(obj):
return val
if isinstance(obj, datetime):
obj = (obj - EPOCH).total_seconds() * 1000
elif isinstance(obj, date):
obj = (obj - EPOCH.date()).total_seconds() * 1000
else:
raise TypeError(
"Unserializable object {} of type {}".format(obj, type(obj))