def test_basic(self):
        self.handler.setFormatter(default_formatter())
        with Logger(handler=self.handler):
            self._loop()

        value = float(self._getvalue().strip())
        self.assertTrue(value > 0)
    def test_message(self):
        self.handler.setFormatter(default_formatter())
        with Logger(handler=self.handler, message='test'):
            self._loop()

        buf = self._getvalue().strip().split(' ')
        self.assertTrue(float(buf[0]) > 0)
        self.assertEqual(buf[1], 'test')
    def test_message_by_instance(self):
        self.handler.setFormatter(default_formatter())
        with Logger(handler=self.handler) as log:
            log.message = 'test'

        value = self.buffer.getvalue().strip()
        buf = self._getvalue().strip().split(' ')
        self.assertTrue(float(buf[0]) > 0)
        self.assertEqual(buf[1], 'test')
    def test_multi_with_statement(self):
        self.handler.setFormatter(default_formatter())
        with Logger(handler=self.handler):
            self._loop()

        with Logger(handler=self.handler):
            self._loop()

        values = [x.strip() for x in self._getvalue().split('\n') if x]
        self.assertEqual(len(values), 2)
    def test_raise_in_with_statement(self):
        self.handler.setFormatter(default_formatter())
        try:
            with Logger(handler=self.handler):
                1 / 0
        except:
            pass

        value = self._getvalue().strip()
        self.assertEqual(value, 'None')