mirror of https://github.com/python/cpython
Added back test code lost during merge.
This commit is contained in:
parent
ef37dfcd84
commit
db8f46321f
|
@ -26,6 +26,7 @@ import logging.config
|
||||||
import codecs
|
import codecs
|
||||||
import configparser
|
import configparser
|
||||||
import datetime
|
import datetime
|
||||||
|
import pathlib
|
||||||
import pickle
|
import pickle
|
||||||
import io
|
import io
|
||||||
import gc
|
import gc
|
||||||
|
@ -308,6 +309,10 @@ class BuiltinLevelsTest(BaseTest):
|
||||||
self.assertEqual(logging.getLevelName('INFO'), logging.INFO)
|
self.assertEqual(logging.getLevelName('INFO'), logging.INFO)
|
||||||
self.assertEqual(logging.getLevelName(logging.INFO), 'INFO')
|
self.assertEqual(logging.getLevelName(logging.INFO), 'INFO')
|
||||||
|
|
||||||
|
def test_issue27935(self):
|
||||||
|
fatal = logging.getLevelName('FATAL')
|
||||||
|
self.assertEqual(fatal, logging.FATAL)
|
||||||
|
|
||||||
class BasicFilterTest(BaseTest):
|
class BasicFilterTest(BaseTest):
|
||||||
|
|
||||||
"""Test the bundled Filter class."""
|
"""Test the bundled Filter class."""
|
||||||
|
@ -575,6 +580,29 @@ class HandlerTest(BaseTest):
|
||||||
self.assertFalse(h.shouldFlush(r))
|
self.assertFalse(h.shouldFlush(r))
|
||||||
h.close()
|
h.close()
|
||||||
|
|
||||||
|
def test_path_objects(self):
|
||||||
|
"""
|
||||||
|
Test that Path objects are accepted as filename arguments to handlers.
|
||||||
|
|
||||||
|
See Issue #27493.
|
||||||
|
"""
|
||||||
|
fd, fn = tempfile.mkstemp()
|
||||||
|
os.close(fd)
|
||||||
|
os.unlink(fn)
|
||||||
|
pfn = pathlib.Path(fn)
|
||||||
|
cases = (
|
||||||
|
(logging.FileHandler, (pfn, 'w')),
|
||||||
|
(logging.handlers.RotatingFileHandler, (pfn, 'a')),
|
||||||
|
(logging.handlers.TimedRotatingFileHandler, (pfn, 'h')),
|
||||||
|
)
|
||||||
|
if sys.platform in ('linux', 'darwin'):
|
||||||
|
cases += ((logging.handlers.WatchedFileHandler, (pfn, 'w')),)
|
||||||
|
for cls, args in cases:
|
||||||
|
h = cls(*args)
|
||||||
|
self.assertTrue(os.path.exists(fn))
|
||||||
|
h.close()
|
||||||
|
os.unlink(fn)
|
||||||
|
|
||||||
@unittest.skipIf(os.name == 'nt', 'WatchedFileHandler not appropriate for Windows.')
|
@unittest.skipIf(os.name == 'nt', 'WatchedFileHandler not appropriate for Windows.')
|
||||||
@unittest.skipUnless(threading, 'Threading required for this test.')
|
@unittest.skipUnless(threading, 'Threading required for this test.')
|
||||||
def test_race(self):
|
def test_race(self):
|
||||||
|
@ -995,6 +1023,36 @@ class MemoryHandlerTest(BaseTest):
|
||||||
self.mem_logger.debug(self.next_message())
|
self.mem_logger.debug(self.next_message())
|
||||||
self.assert_log_lines(lines)
|
self.assert_log_lines(lines)
|
||||||
|
|
||||||
|
def test_flush_on_close(self):
|
||||||
|
"""
|
||||||
|
Test that the flush-on-close configuration works as expected.
|
||||||
|
"""
|
||||||
|
self.mem_logger.debug(self.next_message())
|
||||||
|
self.assert_log_lines([])
|
||||||
|
self.mem_logger.info(self.next_message())
|
||||||
|
self.assert_log_lines([])
|
||||||
|
self.mem_logger.removeHandler(self.mem_hdlr)
|
||||||
|
# Default behaviour is to flush on close. Check that it happens.
|
||||||
|
self.mem_hdlr.close()
|
||||||
|
lines = [
|
||||||
|
('DEBUG', '1'),
|
||||||
|
('INFO', '2'),
|
||||||
|
]
|
||||||
|
self.assert_log_lines(lines)
|
||||||
|
# Now configure for flushing not to be done on close.
|
||||||
|
self.mem_hdlr = logging.handlers.MemoryHandler(10, logging.WARNING,
|
||||||
|
self.root_hdlr,
|
||||||
|
False)
|
||||||
|
self.mem_logger.addHandler(self.mem_hdlr)
|
||||||
|
self.mem_logger.debug(self.next_message())
|
||||||
|
self.assert_log_lines(lines) # no change
|
||||||
|
self.mem_logger.info(self.next_message())
|
||||||
|
self.assert_log_lines(lines) # no change
|
||||||
|
self.mem_logger.removeHandler(self.mem_hdlr)
|
||||||
|
self.mem_hdlr.close()
|
||||||
|
# assert that no new lines have been added
|
||||||
|
self.assert_log_lines(lines) # no change
|
||||||
|
|
||||||
|
|
||||||
class ExceptionFormatter(logging.Formatter):
|
class ExceptionFormatter(logging.Formatter):
|
||||||
"""A special exception formatter."""
|
"""A special exception formatter."""
|
||||||
|
@ -4239,6 +4297,17 @@ class NTEventLogHandlerTest(BaseTest):
|
||||||
msg = 'Record not found in event log, went back %d records' % GO_BACK
|
msg = 'Record not found in event log, went back %d records' % GO_BACK
|
||||||
self.assertTrue(found, msg=msg)
|
self.assertTrue(found, msg=msg)
|
||||||
|
|
||||||
|
|
||||||
|
class MiscTestCase(unittest.TestCase):
|
||||||
|
def test__all__(self):
|
||||||
|
blacklist = {'logThreads', 'logMultiprocessing',
|
||||||
|
'logProcesses', 'currentframe',
|
||||||
|
'PercentStyle', 'StrFormatStyle', 'StringTemplateStyle',
|
||||||
|
'Filterer', 'PlaceHolder', 'Manager', 'RootLogger',
|
||||||
|
'root'}
|
||||||
|
support.check__all__(self, logging, blacklist=blacklist)
|
||||||
|
|
||||||
|
|
||||||
# Set the locale to the platform-dependent default. I have no idea
|
# Set the locale to the platform-dependent default. I have no idea
|
||||||
# why the test does this, but in any case we save the current locale
|
# why the test does this, but in any case we save the current locale
|
||||||
# first and restore it at the end.
|
# first and restore it at the end.
|
||||||
|
@ -4256,6 +4325,7 @@ def test_main():
|
||||||
ExceptionTest, SysLogHandlerTest, HTTPHandlerTest,
|
ExceptionTest, SysLogHandlerTest, HTTPHandlerTest,
|
||||||
NTEventLogHandlerTest, TimedRotatingFileHandlerTest,
|
NTEventLogHandlerTest, TimedRotatingFileHandlerTest,
|
||||||
UnixSocketHandlerTest, UnixDatagramHandlerTest, UnixSysLogHandlerTest,
|
UnixSocketHandlerTest, UnixDatagramHandlerTest, UnixSysLogHandlerTest,
|
||||||
|
MiscTestCase
|
||||||
]
|
]
|
||||||
if hasattr(logging.handlers, 'QueueListener'):
|
if hasattr(logging.handlers, 'QueueListener'):
|
||||||
tests.append(QueueListenerTest)
|
tests.append(QueueListenerTest)
|
||||||
|
|
Loading…
Reference in New Issue