Beispiel #1
0
    async def test_emit_does_rollover_if_should_rollover(self):
        handler = BaseAsyncRotatingFileHandler(filename=self.temp_file.name)
        handler.should_rollover = Mock(return_value=True)

        async def rollover_is_done():
            """
            sleep is needed so that the loop can schedule the other
            `do_rollover` coroutines, simulating a real `do_rollover` behaviour
            """
            await asyncio.sleep(0.1)
            handler.should_rollover.return_value = False

        handler.do_rollover = CoroutineMock(side_effect=rollover_is_done)

        await asyncio.gather(*(handler.emit(
            LogRecord(
                name=str(i),
                level=20,
                pathname="/aiologger/tests/test_logger.py",
                lineno=17,
                msg="Xablau!",
                exc_info=None,
                args=None,
            )) for i in range(42)))

        handler.do_rollover.assert_awaited_once()
Beispiel #2
0
    async def test_rotation_filename_delegates_to_the_namer_if_a_namer_is_provided(
            self):
        namer = Mock(return_value="Xena")
        handler = BaseAsyncRotatingFileHandler(filename=self.temp_file.name,
                                               namer=namer)

        self.assertEqual(handler.rotation_filename("Xablau"), "Xena")
        namer.assert_called_once_with("Xablau")
Beispiel #3
0
    async def test_rotate_calls_the_rotator_if_one_is_avaialble(self):
        handler = BaseAsyncRotatingFileHandler(filename=self.temp_file.name)
        handler.rotator = Mock()
        destination = self.temp_file.name + "1"

        await handler.rotate(self.temp_file.name, destination)

        handler.rotator.assert_called_once_with(self.temp_file.name,
                                                destination)
Beispiel #4
0
 async def test_emit_awaits_for_handle_error_is_an_exceptions_is_raised(
         self):
     handler = BaseAsyncRotatingFileHandler(filename=self.temp_file.name)
     handler.should_rollover = Mock(return_value=False)
     exc = OSError()
     with patch("aiologger.handlers.files.AsyncFileHandler.emit",
                side_effect=exc), patch.object(
                    handler, "handle_error",
                    CoroutineMock()) as handleError:
         log_record = LogRecord(
             name="Xablau",
             level=20,
             pathname="/aiologger/tests/test_logger.py",
             lineno=17,
             msg="Xablau!",
             exc_info=None,
             args=None,
         )
         await handler.emit(log_record)
         handleError.assert_awaited_once_with(log_record, exc)
Beispiel #5
0
    async def test_rotate_renames_the_source_file_if_a_rotator_isnt_available(
            self):
        handler = BaseAsyncRotatingFileHandler(filename=self.temp_file.name)
        destination = self.temp_file.name + "1"

        self.assertTrue(os.path.exists(self.temp_file.name))
        self.assertFalse(os.path.exists(destination))

        await handler.rotate(self.temp_file.name, destination)

        self.assertFalse(os.path.exists(self.temp_file.name))
        self.assertTrue(os.path.exists(destination))
Beispiel #6
0
 async def test_rotation_filename_uses_the_default_if_a_namer_isnt_provided(
         self):
     handler = BaseAsyncRotatingFileHandler(filename=self.temp_file.name)
     self.assertEqual(handler.rotation_filename("Xablau"), "Xablau")