@@ -4598,27 +4598,25 @@ def test_msecs_has_no_floating_point_precision_loss(self):
4598
4598
self .assertEqual (record .msecs , want )
4599
4599
self .assertEqual (record .created , ns / 1e9 )
4600
4600
4601
+ # The test overrides a private attribute
4602
+ @support .cpython_only
4601
4603
def test_relativeCreated_has_higher_precision (self ):
4602
4604
# See issue gh-102402
4603
4605
ns = 1_677_903_920_000_998_503 # approx. 2023-03-04 04:25:20 UTC
4604
4606
offsets_ns = (200 , 500 , 12_354 , 99_999 , 1_677_903_456_999_123_456 )
4605
- orig_modules = import_helper ._save_and_remove_modules (['logging' ])
4606
- try :
4607
- with patch ("time.time_ns" ) as patched_ns :
4608
- # mock for module import
4609
- patched_ns .return_value = ns
4610
- import logging
4611
- for offset_ns in offsets_ns :
4612
- new_ns = ns + offset_ns
4613
- # mock for log record creation
4614
- patched_ns .return_value = new_ns
4615
- record = logging .makeLogRecord ({'msg' : 'test' })
4616
- self .assertAlmostEqual (record .created , new_ns / 1e9 , places = 6 )
4617
- # After PR gh-102412, precision (places) increases from 3 to 7
4618
- self .assertAlmostEqual (record .relativeCreated , offset_ns / 1e6 , places = 7 )
4619
- finally :
4620
- import_helper ._save_and_remove_modules (['logging' ])
4621
- sys .modules .update (orig_modules )
4607
+
4608
+ with (patch ("time.time_ns" ) as time_ns_mock ,
4609
+ support .swap_attr (logging , '_startTime' , ns )):
4610
+ for offset_ns in offsets_ns :
4611
+ # mock for log record creation
4612
+ new_ns = ns + offset_ns
4613
+ time_ns_mock .return_value = new_ns
4614
+
4615
+ record = logging .makeLogRecord ({'msg' : 'test' })
4616
+ self .assertAlmostEqual (record .created , new_ns / 1e9 , places = 6 )
4617
+
4618
+ # After PR gh-102412, precision (places) increases from 3 to 7
4619
+ self .assertAlmostEqual (record .relativeCreated , offset_ns / 1e6 , places = 7 )
4622
4620
4623
4621
4624
4622
class TestBufferingFormatter (logging .BufferingFormatter ):
0 commit comments