1010import pickle
1111
1212import pytest
13-
14- from freezegun import freeze_time
13+ import time_machine
1514
1615from structlog .processors import (
1716 ExceptionRenderer ,
@@ -390,10 +389,9 @@ def test_inserts_utc_unix_timestamp_by_default(self):
390389 ts = TimeStamper ()
391390 d = ts (None , None , {})
392391
393- # freezegun doesn't work with time.time. :(
394392 assert isinstance (d ["timestamp" ], float )
395393
396- @freeze_time ("1980-03-25 16:00:00" )
394+ @time_machine . travel ("1980-03-25 16:00:00" )
397395 def test_local (self ):
398396 """
399397 Timestamp in local timezone work. Due to historic reasons, the default
@@ -404,7 +402,7 @@ def test_local(self):
404402
405403 assert "1980-03-25T16:00:00" == d ["timestamp" ]
406404
407- @freeze_time ("1980-03-25 16:00:00" )
405+ @time_machine . travel ("1980-03-25 16:00:00" )
408406 def test_formats (self ):
409407 """
410408 The fmt string is respected.
@@ -414,37 +412,31 @@ def test_formats(self):
414412
415413 assert "1980" == d ["timestamp" ]
416414
417- @freeze_time ("1980-03-25 16:00:00" )
415+ @time_machine .travel (
416+ datetime .datetime (1980 , 3 , 25 , 16 , 0 , 0 , tzinfo = datetime .timezone .utc )
417+ )
418418 def test_inserts_formatted_utc (self ):
419419 """
420420 The fmt string in UTC timezone works.
421-
422- The exact hours calculated here maybe incorrect because of freezegun bugs:
423- https://github.com/spulec/freezegun/issues/348
424- https://github.com/spulec/freezegun/issues/494
425421 """
426422
427423 ts = TimeStamper (fmt = "%Y-%m-%d %H:%M:%S %Z" )
428424 d = ts (None , None , {})
429425
430426 assert "1980-03-25 16:00:00 UTC" == d ["timestamp" ]
431427
432- @freeze_time ("1980-03-25 16:00:00" )
428+ @time_machine . travel ("1980-03-25 16:00:00" )
433429 def test_inserts_formatted_local (self ):
434430 """
435431 The fmt string in local timezone works.
436-
437- The exact hours calculated here maybe incorrect because of freezegun bugs:
438- https://github.com/spulec/freezegun/issues/348
439- https://github.com/spulec/freezegun/issues/494
440432 """
441433 local_tz = datetime .datetime .now ().astimezone ().tzname ()
442434 ts = TimeStamper (fmt = "%Y-%m-%d %H:%M:%S %Z" , utc = False )
443435 d = ts (None , None , {})
444436
445437 assert f"1980-03-25 16:00:00 { local_tz } " == d ["timestamp" ]
446438
447- @freeze_time ("1980-03-25 16:00:00" )
439+ @time_machine . travel ("1980-03-25 16:00:00" )
448440 def test_tz_aware (self ):
449441 """
450442 The timestamp that is used for formatting is timezone-aware.
@@ -455,7 +447,9 @@ def test_tz_aware(self):
455447 assert "" == datetime .datetime .now ().strftime ("%z" ) # noqa: DTZ005
456448 assert "" != d ["timestamp" ]
457449
458- @freeze_time ("1980-03-25 16:00:00" )
450+ @time_machine .travel (
451+ datetime .datetime (1980 , 3 , 25 , 16 , 0 , 0 , tzinfo = datetime .timezone .utc )
452+ )
459453 def test_adds_Z_to_iso (self ):
460454 """
461455 stdlib's isoformat is buggy, so we fix it.
@@ -465,7 +459,7 @@ def test_adds_Z_to_iso(self):
465459
466460 assert "1980-03-25T16:00:00Z" == d ["timestamp" ]
467461
468- @freeze_time ("1980-03-25 16:00:00" )
462+ @time_machine . travel ("1980-03-25 16:00:00" )
469463 def test_key_can_be_specified (self ):
470464 """
471465 Timestamp is stored with the specified key.
@@ -475,7 +469,7 @@ def test_key_can_be_specified(self):
475469
476470 assert "03" == d ["month" ]
477471
478- @freeze_time ("1980-03-25 16:00:00" )
472+ @time_machine . travel ("1980-03-25 16:00:00" , tick = False )
479473 @pytest .mark .parametrize ("fmt" , [None , "%Y" ])
480474 @pytest .mark .parametrize ("utc" , [True , False ])
481475 @pytest .mark .parametrize ("key" , [None , "other-key" ])
@@ -494,13 +488,15 @@ def test_pickle(self, fmt, utc, key, proto):
494488 None , None , {}
495489 )
496490
497- def test_apply_freezegun_after_instantiation (self ):
491+ def test_apply_time_machine_after_instantiation (self ):
498492 """
499493 Freezing time after instantiation of TimeStamper works.
500494 """
501495 ts = TimeStamper (fmt = "iso" , utc = False )
502496
503- with freeze_time ("1980-03-25 16:00:00" , tz_offset = 1 ):
497+ # Simulate a different local time by traveling to a different timestamp
498+ # after the stamper was created.
499+ with time_machine .travel ("1980-03-25 17:00:00" ):
504500 d = ts (None , None , {})
505501
506502 assert "1980-03-25T17:00:00" == d ["timestamp" ]
0 commit comments