|
61 | 61 | import weakref |
62 | 62 |
|
63 | 63 | from http.server import HTTPServer, BaseHTTPRequestHandler |
64 | | -from unittest.mock import patch |
| 64 | +from unittest.mock import call, Mock, patch |
65 | 65 | from urllib.parse import urlparse, parse_qs |
66 | 66 | from socketserver import (ThreadingUDPServer, DatagramRequestHandler, |
67 | 67 | ThreadingTCPServer, StreamRequestHandler) |
@@ -5655,12 +5655,19 @@ def test_incompatible(self): |
5655 | 5655 | assertRaises = self.assertRaises |
5656 | 5656 | handlers = [logging.StreamHandler()] |
5657 | 5657 | stream = sys.stderr |
| 5658 | + formatter = logging.Formatter() |
5658 | 5659 | assertRaises(ValueError, logging.basicConfig, filename='test.log', |
5659 | 5660 | stream=stream) |
5660 | 5661 | assertRaises(ValueError, logging.basicConfig, filename='test.log', |
5661 | 5662 | handlers=handlers) |
5662 | 5663 | assertRaises(ValueError, logging.basicConfig, stream=stream, |
5663 | 5664 | handlers=handlers) |
| 5665 | + assertRaises(ValueError, logging.basicConfig, formatter=formatter, |
| 5666 | + format='%(message)s') |
| 5667 | + assertRaises(ValueError, logging.basicConfig, formatter=formatter, |
| 5668 | + datefmt='%H:%M:%S') |
| 5669 | + assertRaises(ValueError, logging.basicConfig, formatter=formatter, |
| 5670 | + style='%') |
5664 | 5671 | # Issue 23207: test for invalid kwargs |
5665 | 5672 | assertRaises(ValueError, logging.basicConfig, loglevel=logging.INFO) |
5666 | 5673 | # Should pop both filename and filemode even if filename is None |
@@ -5795,6 +5802,20 @@ def dummy_handle_error(record): |
5795 | 5802 | # didn't write anything due to the encoding error |
5796 | 5803 | self.assertEqual(data, r'') |
5797 | 5804 |
|
| 5805 | + def test_formatter_given(self): |
| 5806 | + mock_formatter = Mock() |
| 5807 | + mock_handler = Mock(formatter=None) |
| 5808 | + with patch("logging.Formatter") as mock_formatter_init: |
| 5809 | + logging.basicConfig(formatter=mock_formatter, handlers=[mock_handler]) |
| 5810 | + self.assertEqual(mock_handler.setFormatter.call_args_list, [call(mock_formatter)]) |
| 5811 | + self.assertEqual(mock_formatter_init.call_count, 0) |
| 5812 | + |
| 5813 | + def test_formatter_not_given(self): |
| 5814 | + mock_handler = Mock(formatter=None) |
| 5815 | + with patch("logging.Formatter") as mock_formatter_init: |
| 5816 | + logging.basicConfig(handlers=[mock_handler]) |
| 5817 | + self.assertEqual(mock_formatter_init.call_count, 1) |
| 5818 | + |
5798 | 5819 | @support.requires_working_socket() |
5799 | 5820 | def test_log_taskName(self): |
5800 | 5821 | async def log_record(): |
|
0 commit comments