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