Example #1
0
def test_main_manually_add_container(docker_client, session, mocker):
    args = Dict({"debug": False, "interval": .1})

    logger = None

    def _side_effect(message, *_args, **_kwargs):
        if message == "sleeping main thread":
            nonlocal logger
            if not logger:
                logger = Logger(docker_client)
            else:
                raise SystemExit()

    mocked_debug = mocker.patch("logging.debug")
    mocked_debug.side_effect = _side_effect

    mocked_add_container = mocker.patch(
        "logsql.__main__.Monitor.add_container")

    try:
        main(args)
    finally:
        if logger:
            logger.container.kill()

    mocked_add_container.assert_called_with(logger.container.id)
Example #2
0
def test_main_poll_container(logger, session, mocker):
    args = Dict({"debug": False, "interval": .1})

    done = False

    def _side_effect(*_args, **_kwargs):
        nonlocal done
        if not done:
            done = True
            return None
        raise SystemExit()

    mocked_poll = mocker.patch("subprocess.Popen.poll")
    mocked_poll.side_effect = _side_effect

    main(args)
Example #3
0
def test_main_logsql(docker_client, session, mocker):
    args = Dict({"debug": False, "interval": 60})

    def _side_effect(message, *args, **kwargs):
        if message == "sleeping main thread":
            raise SystemExit()

    mocked_debug = mocker.patch("logging.debug")
    mocked_debug.side_effect = _side_effect

    mocked_add_container = mocker.patch(
        "logsql.__main__.Monitor.add_container")

    logger = Logger(docker_client, name="logsql")
    try:
        main(args)
    finally:
        logger.container.kill()

    mocked_add_container.assert_not_called()
Example #4
0
def test_main_no_logpath(docker_client, session, mocker):
    args = Dict({"debug": False, "interval": 60})

    mocked_inspect = mocker.patch("logsql.__main__.Monitor.inspect")
    mocked_inspect.return_value = {"LogPath": ""}

    mocked_warning = mocker.patch("logging.warning")

    def _side_effect(message, *args, **kwargs):
        if message == "sleeping main thread":
            raise SystemExit()

    mocked_debug = mocker.patch("logging.debug")
    mocked_debug.side_effect = _side_effect

    logger = Logger(docker_client)
    try:
        main(args)
    finally:
        logger.container.kill()

    mocked_inspect.assert_called_once()
    mocked_warning.assert_called_once()
Example #5
0
def test_main_quit(session, mocker):
    args = Dict({"debug": False, "interval": 60})
    mocked = mocker.patch("time.sleep")
    mocked.side_effect = SystemExit()
    assert main(args) == 128 + signal.SIGTERM