1515import unittest
1616import uuid
1717from datetime import datetime
18- from pytz import utc
18+ from datetime import timedelta
19+ from calendar import timegm
20+ from pytz import utc , timezone
1921
2022if __name__ == '__main__' :
2123 from main import setup_tincan_path
@@ -260,9 +262,9 @@ def test_retrieve_statement(self):
260262 object = self .activity ,
261263 context = self .context ,
262264 result = self .result ,
263- id = str ( uuid . uuid4 ()) ,
264- timestamp = utc . localize ( datetime . utcnow ()) ,
265- version = Version . latest
265+ id = id_str ,
266+ version = Version . latest ,
267+ timestamp = utc . localize ( datetime . utcnow ())
266268 )
267269 save_resp = self .lrs .save_statement (statement )
268270
@@ -273,13 +275,14 @@ def test_retrieve_statement(self):
273275 self ._vars_verifier (response .content , statement , ['_authority' , '_stored' ])
274276
275277 def test_query_statements (self ):
278+ tstamp = utc .localize (datetime .utcnow ())
276279 s1 = Statement (
277280 actor = self .agent ,
278281 verb = self .verb ,
279282 object = self .parent ,
280283 result = self .result ,
281284 id = str (uuid .uuid4 ()),
282- timestamp = utc . localize ( datetime . utcnow ())
285+ timestamp = tstamp
283286 )
284287 self .lrs .save_statement (s1 )
285288
@@ -289,7 +292,7 @@ def test_query_statements(self):
289292 object = self .parent ,
290293 result = self .result ,
291294 id = str (uuid .uuid4 ()),
292- timestamp = utc . localize ( datetime . utcnow ())
295+ timestamp = tstamp
293296 )
294297 self .lrs .save_statement (s2 )
295298
@@ -299,7 +302,7 @@ def test_query_statements(self):
299302 object = self .parent ,
300303 result = self .result ,
301304 id = str (uuid .uuid4 ()),
302- timestamp = utc . localize ( datetime . utcnow ())
305+ timestamp = tstamp
303306 )
304307 self .lrs .save_statement (s3 )
305308
@@ -493,6 +496,13 @@ def _vars_verifier(self, obj1, obj2, _ignored_attrs=['_authority', '_stored', '_
493496 for k , v in vars (obj1 ).iteritems ():
494497 if k in _ignored_attrs :
495498 continue
499+ elif isinstance (v , datetime ):
500+ dt1 = getattr (obj1 , k )
501+ dt2 = getattr (obj2 , k )
502+ ts1 = timegm (dt1 .timetuple ())
503+ ts2 = timegm (dt2 .timetuple ())
504+ self .assertEqual (ts1 , ts2 )
505+ self .assertEqual (round (dt1 .microsecond , 3 ), round (dt2 .microsecond , 3 ))
496506 elif isinstance (v , Base ):
497507 self ._vars_verifier (getattr (obj1 , k ), getattr (obj2 , k ))
498508 else :
0 commit comments