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))
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)
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")
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))