Skip to content

Commit 1966c3e

Browse files
committed
Update test_logging.py from 3.13.7
1 parent aa95d8f commit 1966c3e

File tree

1 file changed

+12
-109
lines changed

1 file changed

+12
-109
lines changed

Lib/test/test_logging.py

Lines changed: 12 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -1115,8 +1115,7 @@ class SMTPHandlerTest(BaseTest):
11151115
# bpo-14314, bpo-19665, bpo-34092: don't wait forever
11161116
TIMEOUT = support.LONG_TIMEOUT
11171117

1118-
# TODO: RUSTPYTHON
1119-
@unittest.skip(reason="RUSTPYTHON hangs")
1118+
@unittest.skip("TODO: RUSTPYTHON; hangs")
11201119
def test_basic(self):
11211120
sockmap = {}
11221121
server = TestSMTPServer((socket_helper.HOST, 0), self.process_message, 0.001,
@@ -2154,8 +2153,7 @@ def handle_request(self, request):
21542153
request.end_headers()
21552154
self.handled.set()
21562155

2157-
# TODO: RUSTPYTHON
2158-
@unittest.skip("TODO: RUSTPYTHON; flaky test")
2156+
@unittest.skip('TODO: RUSTPYTHON; flaky test')
21592157
def test_output(self):
21602158
# The log message sent to the HTTPHandler is properly received.
21612159
logger = logging.getLogger("http")
@@ -4060,8 +4058,7 @@ def _mpinit_issue121723(qspec, message_to_log):
40604058
# log a message (this creates a record put in the queue)
40614059
logging.getLogger().info(message_to_log)
40624060

4063-
# TODO: RUSTPYTHON; ImportError: cannot import name 'SemLock'
4064-
@unittest.expectedFailure
4061+
@unittest.expectedFailure # TODO: RUSTPYTHON; ImportError: cannot import name 'SemLock'
40654062
@skip_if_tsan_fork
40664063
@support.requires_subprocess()
40674064
def test_multiprocessing_queues(self):
@@ -4121,8 +4118,7 @@ def test_90195(self):
41214118
# Logger should be enabled, since explicitly mentioned
41224119
self.assertFalse(logger.disabled)
41234120

4124-
# TODO: RUSTPYTHON; ImportError: cannot import name 'SemLock'
4125-
@unittest.expectedFailure
4121+
@unittest.expectedFailure # TODO: RUSTPYTHON; ImportError: cannot import name 'SemLock'
41264122
def test_111615(self):
41274123
# See gh-111615
41284124
import_helper.import_module('_multiprocessing') # see gh-113692
@@ -4171,91 +4167,6 @@ def __init__(self, *args, **kwargs):
41714167
handler = logging.getHandlerByName('custom')
41724168
self.assertEqual(handler.custom_kwargs, custom_kwargs)
41734169

4174-
# TODO: RUSTPYTHON; ImportError: cannot import name 'SemLock'
4175-
@unittest.expectedFailure
4176-
# See gh-91555 and gh-90321
4177-
@support.requires_subprocess()
4178-
def test_deadlock_in_queue(self):
4179-
queue = multiprocessing.Queue()
4180-
handler = logging.handlers.QueueHandler(queue)
4181-
logger = multiprocessing.get_logger()
4182-
level = logger.level
4183-
try:
4184-
logger.setLevel(logging.DEBUG)
4185-
logger.addHandler(handler)
4186-
logger.debug("deadlock")
4187-
finally:
4188-
logger.setLevel(level)
4189-
logger.removeHandler(handler)
4190-
4191-
def test_recursion_in_custom_handler(self):
4192-
class BadHandler(logging.Handler):
4193-
def __init__(self):
4194-
super().__init__()
4195-
def emit(self, record):
4196-
logger.debug("recurse")
4197-
logger = logging.getLogger("test_recursion_in_custom_handler")
4198-
logger.addHandler(BadHandler())
4199-
logger.setLevel(logging.DEBUG)
4200-
logger.debug("boom")
4201-
4202-
@threading_helper.requires_working_threading()
4203-
def test_thread_supression_noninterference(self):
4204-
lock = threading.Lock()
4205-
logger = logging.getLogger("test_thread_supression_noninterference")
4206-
4207-
# Block on the first call, allow others through
4208-
#
4209-
# NOTE: We need to bypass the base class's lock, otherwise that will
4210-
# block multiple calls to the same handler itself.
4211-
class BlockOnceHandler(TestHandler):
4212-
def __init__(self, barrier):
4213-
super().__init__(support.Matcher())
4214-
self.barrier = barrier
4215-
4216-
def createLock(self):
4217-
self.lock = None
4218-
4219-
def handle(self, record):
4220-
self.emit(record)
4221-
4222-
def emit(self, record):
4223-
if self.barrier:
4224-
barrier = self.barrier
4225-
self.barrier = None
4226-
barrier.wait()
4227-
with lock:
4228-
pass
4229-
super().emit(record)
4230-
logger.info("blow up if not supressed")
4231-
4232-
barrier = threading.Barrier(2)
4233-
handler = BlockOnceHandler(barrier)
4234-
logger.addHandler(handler)
4235-
logger.setLevel(logging.DEBUG)
4236-
4237-
t1 = threading.Thread(target=logger.debug, args=("1",))
4238-
with lock:
4239-
4240-
# Ensure first thread is blocked in the handler, hence supressing logging...
4241-
t1.start()
4242-
barrier.wait()
4243-
4244-
# ...but the second thread should still be able to log...
4245-
t2 = threading.Thread(target=logger.debug, args=("2",))
4246-
t2.start()
4247-
t2.join(timeout=3)
4248-
4249-
self.assertEqual(len(handler.buffer), 1)
4250-
self.assertTrue(handler.matches(levelno=logging.DEBUG, message='2'))
4251-
4252-
# The first thread should still be blocked here
4253-
self.assertTrue(t1.is_alive())
4254-
4255-
# Now the lock has been released the first thread should complete
4256-
t1.join()
4257-
self.assertEqual(len(handler.buffer), 2)
4258-
self.assertTrue(handler.matches(levelno=logging.DEBUG, message='1'))
42594170

42604171
class ManagerTest(BaseTest):
42614172
def test_manager_loggerclass(self):
@@ -4663,8 +4574,7 @@ def test_dollars(self):
46634574
f = logging.Formatter('${asctime}--', style='$')
46644575
self.assertTrue(f.usesTime())
46654576

4666-
# TODO: RUSTPYTHON; ValueError: Unexpected error parsing format string
4667-
@unittest.expectedFailure
4577+
@unittest.expectedFailure # TODO: RUSTPYTHON; ValueError: Unexpected error parsing format string
46684578
def test_format_validate(self):
46694579
# Check correct formatting
46704580
# Percentage style
@@ -4838,8 +4748,7 @@ def test_defaults_parameter(self):
48384748
def test_invalid_style(self):
48394749
self.assertRaises(ValueError, logging.Formatter, None, None, 'x')
48404750

4841-
# TODO: RUSTPYTHON; AttributeError: 'struct_time' object has no attribute 'tm_gmtoff'
4842-
@unittest.expectedFailure
4751+
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'struct_time' object has no attribute 'tm_gmtoff'
48434752
def test_time(self):
48444753
r = self.get_record()
48454754
dt = datetime.datetime(1993, 4, 21, 8, 3, 0, 0, utc)
@@ -4854,8 +4763,7 @@ def test_time(self):
48544763
f.format(r)
48554764
self.assertEqual(r.asctime, '1993-04-21 08:03:00,123')
48564765

4857-
# TODO: RUSTPYTHON; AttributeError: 'struct_time' object has no attribute 'tm_gmtoff'
4858-
@unittest.expectedFailure
4766+
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'struct_time' object has no attribute 'tm_gmtoff'
48594767
def test_default_msec_format_none(self):
48604768
class NoMsecFormatter(logging.Formatter):
48614769
default_msec_format = None
@@ -5257,8 +5165,7 @@ def __init__(self, name='MyLogger', level=logging.NOTSET):
52575165
h.close()
52585166
logging.setLoggerClass(logging.Logger)
52595167

5260-
# TODO: RUSTPYTHON
5261-
@unittest.expectedFailure
5168+
@unittest.expectedFailure # TODO: RUSTPYTHON
52625169
def test_logging_at_shutdown(self):
52635170
# bpo-20037: Doing text I/O late at interpreter shutdown must not crash
52645171
code = textwrap.dedent("""
@@ -5278,8 +5185,7 @@ def __del__(self):
52785185
self.assertIn("exception in __del__", err)
52795186
self.assertIn("ValueError: some error", err)
52805187

5281-
# TODO: RUSTPYTHON
5282-
@unittest.expectedFailure
5188+
@unittest.expectedFailure # TODO: RUSTPYTHON
52835189
def test_logging_at_shutdown_open(self):
52845190
# bpo-26789: FileHandler keeps a reference to the builtin open()
52855191
# function to be able to open or reopen the file during Python
@@ -6480,8 +6386,7 @@ def rotator(source, dest):
64806386
rh.close()
64816387

64826388
class TimedRotatingFileHandlerTest(BaseFileTest):
6483-
# TODO: RUSTPYTHON
6484-
@unittest.expectedFailureIfWindows("TODO: RUSTPYTHON")
6389+
@unittest.expectedFailureIfWindows('TODO: RUSTPYTHON')
64856390
@unittest.skipIf(support.is_wasi, "WASI does not have /dev/null.")
64866391
def test_should_not_rollover(self):
64876392
# See bpo-45401. Should only ever rollover regular files
@@ -6535,8 +6440,7 @@ def test_rollover(self):
65356440
print(tf.read())
65366441
self.assertTrue(found, msg=msg)
65376442

6538-
# TODO: RUSTPYTHON
6539-
@unittest.expectedFailureIfWindows("TODO: RUSTPYTHON")
6443+
@unittest.expectedFailureIfWindows('TODO: RUSTPYTHON')
65406444
def test_rollover_at_midnight(self, weekly=False):
65416445
os_helper.unlink(self.fn)
65426446
now = datetime.datetime.now()
@@ -6580,8 +6484,7 @@ def test_rollover_at_midnight(self, weekly=False):
65806484
for i, line in enumerate(f):
65816485
self.assertIn(f'testing1 {i}', line)
65826486

6583-
# TODO: RUSTPYTHON
6584-
@unittest.expectedFailureIfWindows("TODO: RUSTPYTHON")
6487+
@unittest.expectedFailureIfWindows('TODO: RUSTPYTHON')
65856488
def test_rollover_at_weekday(self):
65866489
self.test_rollover_at_midnight(weekly=True)
65876490

0 commit comments

Comments
 (0)