Example #1
0
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
Example #2
0
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
Example #3
0
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
Example #4
0
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
Example #5
0
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
Example #6
0
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