File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -321,9 +321,12 @@ def _merge_metadata(self, server_data):
321321 self .id = server_data [key ]
322322 else :
323323 if isinstance (server_data [key ], string_types ):
324- dt = iso8601 .parse_date (server_data [key ])
324+ dt = utils .decode (key , {
325+ '__type' : 'Date' ,
326+ 'iso' : server_data [key ]
327+ })
325328 elif server_data [key ]['__type' ] == 'Date' :
326- dt = iso8601 . parse_date ( server_data [ key ][ 'iso' ] )
329+ dt = utils . decode ( key , server_data )
327330 else :
328331 raise TypeError ('Invalid date type' )
329332 server_data [key ] = dt
Original file line number Diff line number Diff line change 55from __future__ import print_function
66
77import os
8+ from datetime import datetime
9+ from datetime import timedelta
810
11+ from dateutil import tz
912from nose .tools import with_setup # type: ignore
1013from nose .tools import ok_ # type: ignore
1114from nose .tools import eq_ # type: ignore
@@ -352,3 +355,19 @@ def test_create_without_data(): # type: () -> None
352355 assert foo1 .id == foo2 .id
353356 assert Foo .query .get (foo1 .id ).get ('aNumber' ) == 3
354357 foo1 .destroy ()
358+
359+
360+ @with_setup (setup_func )
361+ def test_time_zone ():
362+ TestTimeZone = Object .extend ('TestTimeZone' )
363+ now = datetime .now ()
364+ obj = TestTimeZone ()
365+ obj .set ('date' , now )
366+ obj .save ()
367+
368+ obj = TestTimeZone .query .get (obj .id )
369+ assert (obj .created_at .tzinfo == tz .tzlocal ())
370+ assert (obj .updated_at .tzinfo == tz .tzlocal ())
371+ assert (obj .get ('date' ).tzinfo == tz .tzlocal ())
372+
373+ obj .destroy ()
You can’t perform that action at this time.
0 commit comments