mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 19:34:08 +00:00 
			
		
		
		
	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
 |