Commit 4fb0d089 authored by Vinay Sajip's avatar Vinay Sajip

More test_logging coverage improvements.

parent 49fcc4a2
...@@ -890,7 +890,7 @@ class Handler(Filterer): ...@@ -890,7 +890,7 @@ class Handler(Filterer):
None, sys.stderr) None, sys.stderr)
sys.stderr.write('Logged from file %s, line %s\n' % ( sys.stderr.write('Logged from file %s, line %s\n' % (
record.filename, record.lineno)) record.filename, record.lineno))
except IOError: except IOError: #pragma: no cover
pass # see issue 5971 pass # see issue 5971
finally: finally:
del ei del ei
......
...@@ -30,7 +30,7 @@ import types, io ...@@ -30,7 +30,7 @@ import types, io
try: try:
import _thread as thread import _thread as thread
import threading import threading
except ImportError: except ImportError: #pragma: no cover
thread = None thread = None
from socketserver import ThreadingTCPServer, StreamRequestHandler from socketserver import ThreadingTCPServer, StreamRequestHandler
...@@ -786,7 +786,7 @@ def listen(port=DEFAULT_LOGGING_CONFIG_PORT): ...@@ -786,7 +786,7 @@ def listen(port=DEFAULT_LOGGING_CONFIG_PORT):
and which you can join() when appropriate. To stop the server, call and which you can join() when appropriate. To stop the server, call
stopListening(). stopListening().
""" """
if not thread: if not thread: #pragma: no cover
raise NotImplementedError("listen() needs threading to work") raise NotImplementedError("listen() needs threading to work")
class ConfigStreamHandler(StreamRequestHandler): class ConfigStreamHandler(StreamRequestHandler):
...@@ -825,7 +825,7 @@ def listen(port=DEFAULT_LOGGING_CONFIG_PORT): ...@@ -825,7 +825,7 @@ def listen(port=DEFAULT_LOGGING_CONFIG_PORT):
file = io.StringIO(chunk) file = io.StringIO(chunk)
try: try:
fileConfig(file) fileConfig(file)
except (KeyboardInterrupt, SystemExit): except (KeyboardInterrupt, SystemExit): #pragma: no cover
raise raise
except: except:
traceback.print_exc() traceback.print_exc()
......
...@@ -31,7 +31,7 @@ import threading ...@@ -31,7 +31,7 @@ import threading
try: try:
import codecs import codecs
except ImportError: except ImportError: #pragma: no cover
codecs = None codecs = None
# #
...@@ -57,7 +57,7 @@ class BaseRotatingHandler(logging.FileHandler): ...@@ -57,7 +57,7 @@ class BaseRotatingHandler(logging.FileHandler):
""" """
Use the specified filename for streamed logging Use the specified filename for streamed logging
""" """
if codecs is None: if codecs is None: #pragma: no cover
encoding = None encoding = None
logging.FileHandler.__init__(self, filename, mode, encoding, delay) logging.FileHandler.__init__(self, filename, mode, encoding, delay)
self.mode = mode self.mode = mode
...@@ -74,7 +74,7 @@ class BaseRotatingHandler(logging.FileHandler): ...@@ -74,7 +74,7 @@ class BaseRotatingHandler(logging.FileHandler):
if self.shouldRollover(record): if self.shouldRollover(record):
self.doRollover() self.doRollover()
logging.FileHandler.emit(self, record) logging.FileHandler.emit(self, record)
except (KeyboardInterrupt, SystemExit): except (KeyboardInterrupt, SystemExit): #pragma: no cover
raise raise
except: except:
self.handleError(record) self.handleError(record)
...@@ -542,7 +542,7 @@ class SocketHandler(logging.Handler): ...@@ -542,7 +542,7 @@ class SocketHandler(logging.Handler):
try: try:
s = self.makePickle(record) s = self.makePickle(record)
self.send(s) self.send(s)
except (KeyboardInterrupt, SystemExit): except (KeyboardInterrupt, SystemExit): #pragma: no cover
raise raise
except: except:
self.handleError(record) self.handleError(record)
...@@ -794,7 +794,7 @@ class SysLogHandler(logging.Handler): ...@@ -794,7 +794,7 @@ class SysLogHandler(logging.Handler):
self.socket.sendto(msg, self.address) self.socket.sendto(msg, self.address)
else: else:
self.socket.sendall(msg) self.socket.sendall(msg)
except (KeyboardInterrupt, SystemExit): except (KeyboardInterrupt, SystemExit): #pragma: no cover
raise raise
except: except:
self.handleError(record) self.handleError(record)
...@@ -871,7 +871,7 @@ class SMTPHandler(logging.Handler): ...@@ -871,7 +871,7 @@ class SMTPHandler(logging.Handler):
smtp.login(self.username, self.password) smtp.login(self.username, self.password)
smtp.sendmail(self.fromaddr, self.toaddrs, msg) smtp.sendmail(self.fromaddr, self.toaddrs, msg)
smtp.quit() smtp.quit()
except (KeyboardInterrupt, SystemExit): except (KeyboardInterrupt, SystemExit): #pragma: no cover
raise raise
except: except:
self.handleError(record) self.handleError(record)
...@@ -958,7 +958,7 @@ class NTEventLogHandler(logging.Handler): ...@@ -958,7 +958,7 @@ class NTEventLogHandler(logging.Handler):
type = self.getEventType(record) type = self.getEventType(record)
msg = self.format(record) msg = self.format(record)
self._welu.ReportEvent(self.appname, id, cat, type, [msg]) self._welu.ReportEvent(self.appname, id, cat, type, [msg])
except (KeyboardInterrupt, SystemExit): except (KeyboardInterrupt, SystemExit): #pragma: no cover
raise raise
except: except:
self.handleError(record) self.handleError(record)
...@@ -1043,7 +1043,7 @@ class HTTPHandler(logging.Handler): ...@@ -1043,7 +1043,7 @@ class HTTPHandler(logging.Handler):
h.putheader('Authorization', s) h.putheader('Authorization', s)
h.endheaders(data if self.method == "POST" else None) h.endheaders(data if self.method == "POST" else None)
h.getresponse() #can't do anything with the result h.getresponse() #can't do anything with the result
except (KeyboardInterrupt, SystemExit): except (KeyboardInterrupt, SystemExit): #pragma: no cover
raise raise
except: except:
self.handleError(record) self.handleError(record)
...@@ -1213,7 +1213,7 @@ class QueueHandler(logging.Handler): ...@@ -1213,7 +1213,7 @@ class QueueHandler(logging.Handler):
""" """
try: try:
self.enqueue(self.prepare(record)) self.enqueue(self.prepare(record))
except (KeyboardInterrupt, SystemExit): except (KeyboardInterrupt, SystemExit): #pragma: no cover
raise raise
except: except:
self.handleError(record) self.handleError(record)
......
...@@ -351,6 +351,10 @@ class BasicFilterTest(BaseTest): ...@@ -351,6 +351,10 @@ class BasicFilterTest(BaseTest):
finally: finally:
handler.removeFilter(filterfunc) handler.removeFilter(filterfunc)
def test_empty_filter(self):
f = logging.Filter()
r = logging.makeLogRecord({'name': 'spam.eggs'})
self.assertTrue(f.filter(r))
# #
# First, we define our levels. There can be as many as you want - the only # First, we define our levels. There can be as many as you want - the only
...@@ -519,11 +523,22 @@ class StreamHandlerTest(BaseTest): ...@@ -519,11 +523,22 @@ class StreamHandlerTest(BaseTest):
h = TestStreamHandler(BadStream()) h = TestStreamHandler(BadStream())
r = logging.makeLogRecord({}) r = logging.makeLogRecord({})
old_raise = logging.raiseExceptions old_raise = logging.raiseExceptions
old_stderr = sys.stderr
try: try:
h.handle(r) h.handle(r)
self.assertIs(h.error_record, r) self.assertIs(h.error_record, r)
h = logging.StreamHandler(BadStream())
sys.stderr = sio = io.StringIO()
h.handle(r)
self.assertTrue('\nRuntimeError: '
'deliberate mistake\n' in sio.getvalue())
logging.raiseExceptions = False
sys.stderr = sio = io.StringIO()
h.handle(r)
self.assertEqual('', sio.getvalue())
finally: finally:
logging.raiseExceptions = old_raise logging.raiseExceptions = old_raise
sys.stderr = old_stderr
class MemoryHandlerTest(BaseTest): class MemoryHandlerTest(BaseTest):
...@@ -2237,6 +2252,34 @@ class FormatterTest(unittest.TestCase): ...@@ -2237,6 +2252,34 @@ class FormatterTest(unittest.TestCase):
f = logging.Formatter('%(asctime)s %(message)s') f = logging.Formatter('%(asctime)s %(message)s')
self.assertEqual(f.formatTime(r), '1993-04-21 08:03:00,123') self.assertEqual(f.formatTime(r), '1993-04-21 08:03:00,123')
self.assertEqual(f.formatTime(r, '%Y:%d'), '1993:21') self.assertEqual(f.formatTime(r, '%Y:%d'), '1993:21')
f.format(r)
self.assertEqual(r.asctime, '1993-04-21 08:03:00,123')
class TestBufferingFormatter(logging.BufferingFormatter):
def formatHeader(self, records):
return '[(%d)' % len(records)
def formatFooter(self, records):
return '(%d)]' % len(records)
class BufferingFormatterTest(unittest.TestCase):
def setUp(self):
self.records = [
logging.makeLogRecord({'msg': 'one'}),
logging.makeLogRecord({'msg': 'two'}),
]
def test_default(self):
f = logging.BufferingFormatter()
self.assertEqual('', f.format([]))
self.assertEqual('onetwo', f.format(self.records))
def test_custom(self):
f = TestBufferingFormatter()
self.assertEqual('[(2)onetwo(2)]', f.format(self.records))
lf = logging.Formatter('<%(message)s>')
f = TestBufferingFormatter(lf)
self.assertEqual('[(2)<one><two>(2)]', f.format(self.records))
class ExceptionTest(BaseTest): class ExceptionTest(BaseTest):
def test_formatting(self): def test_formatting(self):
...@@ -2957,7 +3000,7 @@ def test_main(): ...@@ -2957,7 +3000,7 @@ def test_main():
CustomLevelsAndFiltersTest, HandlerTest, MemoryHandlerTest, CustomLevelsAndFiltersTest, HandlerTest, MemoryHandlerTest,
ConfigFileTest, SocketHandlerTest, MemoryTest, ConfigFileTest, SocketHandlerTest, MemoryTest,
EncodingTest, WarningsTest, ConfigDictTest, ManagerTest, EncodingTest, WarningsTest, ConfigDictTest, ManagerTest,
FormatterTest, StreamHandlerTest, FormatterTest, BufferingFormatterTest, StreamHandlerTest,
LogRecordFactoryTest, ChildLoggerTest, QueueHandlerTest, LogRecordFactoryTest, ChildLoggerTest, QueueHandlerTest,
ShutdownTest, ModuleLevelMiscTest, BasicConfigTest, ShutdownTest, ModuleLevelMiscTest, BasicConfigTest,
LoggerAdapterTest, LoggerTest, LoggerAdapterTest, LoggerTest,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment