コード例 #1
0
    def setUp(self):
        patcher = patch('eventtracking.backends.logger.logging')
        self.mock_logging = patcher.start()
        self.addCleanup(patcher.stop)
        self.mock_logger = self.mock_logging.getLogger.return_value

        # This will call the mocks
        self.backend = LoggerBackend()

        # Reset them so that we get "clean" mocks in our tests
        self.mock_logging.reset_mock()
        self.mock_logger.reset_mock()
コード例 #2
0
    def setUp(self):

        super(TestLoggerIntegration, self).setUp()
        logger_name = 'integration.test'
        test_logger = logging.getLogger(logger_name)
        test_logger.setLevel(logging.INFO)

        self.temporary_fd, self.temporary_file_name = tempfile.mkstemp()
        self.addCleanup(os.remove, self.temporary_file_name)

        self.temporary_file_handler = logging.FileHandler(self.temporary_file_name, mode='w', encoding='utf_8')
        self.temporary_file_handler.setFormatter(logging.Formatter(fmt='%(message)s'))
        test_logger.addHandler(self.temporary_file_handler)
        self.addCleanup(test_logger.removeHandler, self.temporary_file_handler)

        self.logger_backend = LoggerBackend(name=logger_name)
        self.memory_backend = InMemoryBackend()
        self.tracker = Tracker({
            'logger': self.logger_backend,
            'mem': self.memory_backend
        })
コード例 #3
0
 def test_dynamic_level(self):
     backend = LoggerBackend(level='warning')
     backend.send({})
     self.assertFalse(self.mock_logger.info.called)
     self.mock_logger.warning.assert_called_once_with('{}')
コード例 #4
0
 def test_unlimited_event_size(self):
     default_max_event_size = self.backend.max_event_size
     backend = LoggerBackend(max_event_size=None)
     event = {'foo': 'a' * (default_max_event_size + 1)}
     backend.send(event)
     self.assert_event_emitted(event)
コード例 #5
0
 def test_big_event(self):
     backend = LoggerBackend(max_event_size=10)
     backend.send({'foo': 'a' * (backend.max_event_size + 1)})
     self.assert_no_events_emitted()
コード例 #6
0
 def test_logs_to_correct_named_logger(self):
     backend = LoggerBackend(name=sentinel.logger_name)
     self.mock_logging.getLogger.assert_called_once_with(
         sentinel.logger_name)
     backend.send({})
     self.assert_event_emitted({})
コード例 #7
0
from eventtracking.tracker import Tracker
from eventtracking.backends.logger import LoggerBackend
import logging

logging.basicConfig(filename='app.log',
                    filemode='a',
                    format='%(name)s - %(levelname)s - %(message)s')

log = logging.getLogger("PythonTest")
log.setLevel(logging.INFO)

backend = LoggerBackend(name="PythonTest")
tracker = Tracker(backends={'PythonTest': backend})
tracker.enter_context('my context name',
                      {'page': 'some specific page context'})
tracker.emit('navigation.request p2e',
             {'url': 'http://www.edx.org/some/path/1'})