Beispiel #1
0
 def testVerbosity(self):
     child_source = build_logging.LogSource(enums.Verbosity.VERBOSE)
     self.assertEquals(enums.Verbosity.VERBOSE, child_source.verbosity)
     child_source = build_logging.LogSource()
     self.assertEquals(enums.Verbosity.NORMAL, child_source.verbosity)
     child_source = build_logging.LogSource()
     parent_source = build_logging.LogSource(enums.Verbosity.VERBOSE)
     parent_source.add_child(child_source)
     self.assertEquals(enums.Verbosity.VERBOSE, child_source.verbosity)
     self.assertEquals(enums.Verbosity.VERBOSE, parent_source.verbosity)
Beispiel #2
0
    def testLogBasedOnVerbosity(self):
        log_source = build_logging.LogSource()
        log_source.verbosity = enums.Verbosity.SILENT
        with patch('anvil.util.timer') as mock_timer:
            mock_timer.side_effect = [1]
            log_source.log_debug('debug')
            log_source.log_info('info')
            log_source.log_warning('warning')
            log_source.log_error('error')
        expected = [(enums.LogLevel.ERROR, 1, None, '[ERROR] error')]
        self.assertListEqual(expected, log_source.buffered_messages)

        log_source = build_logging.LogSource()
        log_source.verbosity = enums.Verbosity.NORMAL
        with patch('anvil.util.timer') as mock_timer:
            mock_timer.side_effect = [1, 2, 3]
            log_source.log_debug('debug')
            log_source.log_info('info')
            log_source.log_warning('warning')
            log_source.log_error('error')
        expected = [(enums.LogLevel.INFO, 1, None, '[INFO] info'),
                    (enums.LogLevel.WARNING, 2, None, '[WARNING] warning'),
                    (enums.LogLevel.ERROR, 3, None, '[ERROR] error')]
        self.assertListEqual(expected, log_source.buffered_messages)

        log_source = build_logging.LogSource()
        log_source.verbosity = enums.Verbosity.VERBOSE
        with patch('anvil.util.timer') as mock_timer:
            mock_timer.side_effect = [1, 2, 3, 4]
            log_source.log_debug('debug')
            log_source.log_info('info', 'test')
            log_source.log_warning('warning', 'test')
            log_source.log_error('error')
        expected = [(enums.LogLevel.DEBUG, 1, None, '[DEBUG] debug'),
                    (enums.LogLevel.INFO, 2, 'test', '[INFO] info'),
                    (enums.LogLevel.WARNING, 3, 'test', '[WARNING] warning'),
                    (enums.LogLevel.ERROR, 4, None, '[ERROR] error')]
        self.assertListEqual(expected, log_source.buffered_messages)

        log_source = build_logging.LogSource()
        # Inherit should default to normal of no parent exists.
        log_source.verbosity = enums.Verbosity.INHERIT
        with patch('anvil.util.timer') as mock_timer:
            mock_timer.side_effect = [1, 2, 3]
            log_source.log_debug('debug')
            log_source.log_info('info')
            log_source.log_warning('warning')
            log_source.log_error('error')
        expected = [(enums.LogLevel.INFO, 1, None, '[INFO] info'),
                    (enums.LogLevel.WARNING, 2, None, '[WARNING] warning'),
                    (enums.LogLevel.ERROR, 3, None, '[ERROR] error')]
        self.assertListEqual(expected, log_source.buffered_messages)
Beispiel #3
0
    def testChildMessagesDetected(self):
        child_source = build_logging.LogSource(enums.Verbosity.INHERIT)
        parent_source = build_logging.LogSource(enums.Verbosity.VERBOSE)
        log_sink = MagicMock()
        parent_source.add_log_sink(log_sink)
        parent_source.add_child(child_source)

        with patch('anvil.util.timer') as mock_timer:
            mock_timer.side_effect = [1]
            child_source.log_debug('debug', 'foo')
        expected = [
            call.log((enums.LogLevel.DEBUG, 1, 'foo', '[DEBUG] debug'))
        ]
        self.assertEquals(expected, log_sink.mock_calls)
Beispiel #4
0
    def testMessagesSentToLogSink(self):
        log_source = build_logging.LogSource(enums.Verbosity.VERBOSE)
        with patch('anvil.util.timer') as mock_timer:
            mock_timer.side_effect = [1, 2, 3, 4]
            log_source.log_debug('debug', 'bar')
            log_source.log_info('info', 'bar')
            log_source.log_warning('warning', 'foo')
            log_source.log_error('error', 'foo')
        log_sink = MagicMock()
        log_source.add_log_sink(log_sink)
        expected = [
            call.log((enums.LogLevel.DEBUG, 1, 'bar', '[DEBUG] debug')),
            call.log((enums.LogLevel.INFO, 2, 'bar', '[INFO] info')),
            call.log((enums.LogLevel.WARNING, 3, 'foo', '[WARNING] warning')),
            call.log((enums.LogLevel.ERROR, 4, 'foo', '[ERROR] error'))
        ]
        self.assertEquals(expected, log_sink.mock_calls)

        log_sink.mock_calls = []
        with patch('anvil.util.timer') as mock_timer:
            mock_timer.side_effect = [5]
            log_source.log_debug('debug', 'bar')
        expected = [
            call.log((enums.LogLevel.DEBUG, 5, 'bar', '[DEBUG] debug'))
        ]
        self.assertEquals(expected, log_sink.mock_calls)
Beispiel #5
0
 def testNoDuplicateLogSinks(self):
     log_sink = MagicMock()
     log_source = build_logging.LogSource()
     log_source.add_log_sink(log_sink)
     log_source.add_log_sink(log_sink)
     self.assertEquals(1, len(log_source.log_sinks))