mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	 515fce4fc4
			
		
	
	
		515fce4fc4
		
			
		
	
	
	
	
		
			
			Import logging lazily in assertLogs() in unittest. Move TestHandler from test.support to logging_helper.
		
			
				
	
	
		
			29 lines
		
	
	
	
		
			916 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
	
		
			916 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| import logging.handlers
 | |
| 
 | |
| class TestHandler(logging.handlers.BufferingHandler):
 | |
|     def __init__(self, matcher):
 | |
|         # BufferingHandler takes a "capacity" argument
 | |
|         # so as to know when to flush. As we're overriding
 | |
|         # shouldFlush anyway, we can set a capacity of zero.
 | |
|         # You can call flush() manually to clear out the
 | |
|         # buffer.
 | |
|         logging.handlers.BufferingHandler.__init__(self, 0)
 | |
|         self.matcher = matcher
 | |
| 
 | |
|     def shouldFlush(self):
 | |
|         return False
 | |
| 
 | |
|     def emit(self, record):
 | |
|         self.format(record)
 | |
|         self.buffer.append(record.__dict__)
 | |
| 
 | |
|     def matches(self, **kwargs):
 | |
|         """
 | |
|         Look for a saved dict whose keys/values match the supplied arguments.
 | |
|         """
 | |
|         result = False
 | |
|         for d in self.buffer:
 | |
|             if self.matcher.matches(d, **kwargs):
 | |
|                 result = True
 | |
|                 break
 | |
|         return result
 |