Files @ 901ad28116e6
Branch filter:

Location: rattail-project/rattail/tests/test_logging.py

lance
Add custom `LoggerAdapter` implementation; used by file monitor.

Hopefully this does a better job and avoids some wheel reinvention.

import logging
from unittest import TestCase
from cStringIO import StringIO

from mock import patch

from rattail import logging as rattail_logging


class TestLogging(TestCase):

    @patch('rattail.logging.sys')
    @patch('rattail.logging.socket')
    def test_adapter_adds_all_context(self, socket, sys):
        socket.getfqdn.return_value = 'testing.rattailproject.org'
        socket.gethostbyname.return_value = '127.0.0.1'
        sys.argv = ['just', 'testing']
        formatter = logging.Formatter(u"%(hostname)s %(hostip)s %(argv)s %(levelname)s %(message)s")
        string = StringIO()
        handler = logging.StreamHandler(string)
        handler.setFormatter(formatter)
        log = logging.getLogger('fake_for_testing')
        log.addHandler(handler)
        log.propagate = False
        log = rattail_logging.RattailAdapter(log)
        self.assertEqual(string.getvalue(), "")
        log.debug("some random thing")
        self.assertEqual(string.getvalue(), u"testing.rattailproject.org 127.0.0.1 ['just', 'testing'] DEBUG some random thing\n")
        string.close()