def test_filter_allows_any_records_if_filter_name_isnt_provided(self):
        filter = Filter()

        log_record = make_log_record(name="name doesn't matter")
        self.assertTrue(filter(log_record))

        log_record = make_log_record(name="A.B")
        self.assertTrue(filter(log_record))

        log_record = make_log_record(name="A.B.C.D")
        self.assertTrue(filter(log_record))
Exemple #2
0
    def test_filters_can_be_subclassed_properly(self):
        """
        Regression test https://github.com/B2W-BIT/aiologger/issues/76
        """
        class MyFilter(Filter):
            filter = Mock(return_value=True)

        filter = MyFilter()
        log_record = make_log_record(name="A.B")

        self.assertTrue(filter(log_record))
        filter.filter.assert_called_once_with(log_record)
Exemple #3
0
    async def test_rollover(self):
        handler = AsyncTimedRotatingFileHandler(
            filename=self.temp_file.name,
            when=RolloverInterval.SECONDS,
            backup_count=1,
        )
        formatter = Formatter("%(asctime)s %(message)s")
        handler.formatter = formatter
        r1 = make_log_record(msg="testing - initial")
        await handler.emit(r1)
        self.assertTrue(os.path.exists(self.temp_file.name))

        await asyncio.sleep(1.1)

        r2 = make_log_record(msg="testing - after delay")
        await handler.emit(r2)
        await handler.close()
        # At this point, we should have a recent rotated file which we
        # can test for the existence of. However, in practice, on some
        # machines which run really slowly, we don't know how far back
        # in time to go to look for the log file. So, we go back a fair
        # bit, and stop as soon as we see a rotated file. In theory this
        # could of course still fail, but the chances are lower.
        found = False
        now = datetime.datetime.now()
        GO_BACK = 5 * 60  # seconds
        for secs in range(GO_BACK):
            prev = now - datetime.timedelta(seconds=secs)
            fn = self.temp_file.name + prev.strftime(".%Y-%m-%d_%H-%M-%S")
            found = os.path.exists(fn)
            if found:
                self.files_to_remove.append(fn)
                break

        self.assertTrue(
            found, msg=f"No rotated files found, went back {GO_BACK} seconds")
Exemple #4
0
    async def test_rollover_happens_before_a_logline_is_emitted(self):
        handler = AsyncTimedRotatingFileHandler(
            filename=self.temp_file.name,
            when=RolloverInterval.SECONDS,
            backup_count=1,
        )
        formatter = Formatter("%(asctime)s %(message)s")
        handler.formatter = formatter

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

        await asyncio.sleep(1.1)

        record = make_log_record(msg="testing - initial")
        await handler.emit(record)
        await handler.close()
 def test_filter_allows_records_with_name_equal_to_filter_name(self):
     filter = Filter("A.B.C")
     log_record = make_log_record(name="A.B.C")
     self.assertTrue(filter(log_record))
 def test_it_disallows_records_with_name_not_starting_with_filter_name(
         self):
     filter = Filter("A.B")
     log_record = make_log_record(name="B.A")
     self.assertFalse(filter(log_record))
 def test_filter_disallows_records_with_name_starting_with_filter_name_that_isnt_a_prefix(
         self):
     filter = Filter("A.B")
     log_record = make_log_record(name="A.BC")
     self.assertFalse(filter(log_record))