def test_rotating_file_handler(tmpdir, logger, monkeypatch): """Test the rotating file handler. """ def rollover(obj, current_time): return current_time + 0.1 monkeypatch.setattr(DayRotatingTimeHandler, 'computeRollover', rollover) handler = DayRotatingTimeHandler(str(tmpdir.join('test.log'))) logger.addHandler(handler) logger.info('test') sleep(1) logger.info('test') assert len(tmpdir.listdir()) == 2
def test_rotating_file_handler_encoded(tmpdir, logger, monkeypatch): """Test the rotating file handler with an encoding. Test always pass by increase coverage. """ def rollover(obj, current_time): return current_time + 0.1 monkeypatch.setattr(DayRotatingTimeHandler, 'computeRollover', rollover) handler = DayRotatingTimeHandler(str(tmpdir.join('test.log')), encoding='utf8') logger.addHandler(handler) logger.info('test') sleep(1) logger.info('test') assert len(tmpdir.listdir()) == 2
def test_rotating_file_handler_interval(tmpdir, logger, monkeypatch): """Test the rotating file handler when the rollover return a time smaller than the current time. """ def rollover(obj, current_time): return current_time - 0.1 monkeypatch.setattr(DayRotatingTimeHandler, 'computeRollover', rollover) handler = DayRotatingTimeHandler(str(tmpdir.join('test.log'))) handler.interval = 0.2 logger.addHandler(handler) # Probably because we gives a negative time. assert len(tmpdir.listdir()) == 1 logger.info('test') sleep(1) logger.info('test') assert len(tmpdir.listdir()) == 3
def test_rotating_file_handler_dst(tmpdir, logger, monkeypatch): """Test the rotating file handler when dst change. """ class Aux(object): counter = 0 @classmethod def loct(cls, t): """Change DST at each call. """ t = list(localtime(t)) t[-1] = cls.counter % 2 cls.counter += 1 return t def rollover(obj, current_time): return current_time + 0.1 monkeypatch.setattr(DayRotatingTimeHandler, 'computeRollover', rollover) from ecpy.app.log.tools import time monkeypatch.setattr(time, 'localtime', Aux.loct) handler = DayRotatingTimeHandler(str(tmpdir.join('test.log'))) logger.addHandler(handler) # Force a first rollover. handler.rolloverAt = int(time.time()) t = int(time.time()) logger.info('test') assert abs(handler.rolloverAt - t + 3600) < 1 handler.rolloverAt = int(time.time()) t = int(time.time()) time.localtime(t) logger.info('test') assert abs(handler.rolloverAt - t - 3600) < 1