Example #1
0
    def test_check_bad2(self):

        d = LCDictBasic(warnings=0)
        # handler w/bad formatter
        d.add_handler('con', formatter='no-such-formatter')

        # non-root logger
        d.add_logger(
            'mylogger',
            handlers=['no-such-handler-1', 'no-such-handler-2'],
            filters='no-such-filter-1',
        )

        # Swap stderr BEFORE d.check():
        _stderr = sys.stderr
        sio_err = io.StringIO()
        sys.stderr = sio_err

        # check out ".check()"
        # We expect this call to have written to stderr, and to raise KeyError
        with self.assertRaises(KeyError):
            d.check()

        # print(sio_err.getvalue())       # | DEBUG comment out

        self.assertEqual(
            sio_err.getvalue(),
            "Problems -- nonexistent things mentioned\n"
            "   handler           'con' mentions  formatter 'no-such-formatter'\n"
            "    logger      'mylogger' mentions     filter 'no-such-filter-1'\n"
            "    logger      'mylogger' mentions    handler 'no-such-handler-1'\n"
            "    logger      'mylogger' mentions    handler 'no-such-handler-2'\n"
        )
        # unswap stderr, unnecessarily
        sys.stderr = _stderr
Example #2
0
    def test_check_bad1(self):

        d = LCDictBasic(
            root_level='DEBUG',
            warnings=0)

        #  NOW SCREW IT UP:
        d.attach_root_filters('not-a-filter-1', 'not-a-filter-2')
        d.attach_root_handlers('not-a-handler-1', 'not-a-handler-2')
        d.add_file_handler(
            'fh', 'myfile.log',
            filters=['also-not-a-filter-1', 'also-not-a-filter-2'])

        # Swap stderr BEFORE d.check():
        _stderr = sys.stderr
        sio_err = io.StringIO()
        sys.stderr = sio_err

        # check out ".check()"
        # We expect this call to have written to stderr, and to raise KeyError
        with self.assertRaises(KeyError):
            d.check()

        self.assertEqual(
            sio_err.getvalue(),
            "Problems -- nonexistent things mentioned\n"
            "   handler            'fh' mentions     filter 'also-not-a-filter-1'\n"
            "   handler            'fh' mentions     filter 'also-not-a-filter-2'\n"
            "    logger              '' mentions     filter 'not-a-filter-1'\n"
            "    logger              '' mentions     filter 'not-a-filter-2'\n"
            "    logger              '' mentions    handler 'not-a-handler-1'\n"
            "    logger              '' mentions    handler 'not-a-handler-2'\n"
        )
        # unswap stderr, unnecessarily
        sys.stderr = _stderr
Example #3
0
 def test_check_ok(self):
     lcd = LCDictBasic(warnings=0)
     self.assertEqual(lcd, lcd.check())