コード例 #1
0
def test_pick_default_log_mode():
    with mock.patch('paasta_tools.cli.cmds.logs.LogReader.tail_logs',
                    autospec=True) as tail_logs:
        args, _ = parse_args(["logs"])

        fake_reader = logs.LogReader()
        fake_reader.SUPPORTS_TAILING = True

        logs.pick_default_log_mode(args,
                                   fake_reader,
                                   service=None,
                                   levels=None,
                                   components=None,
                                   clusters=None,
                                   instances=None)

        # Only supports tailing so that's the one that should be used
        assert tail_logs.call_count == 1

    with mock.patch('paasta_tools.cli.cmds.logs.LogReader.print_logs_by_time',
                    autospec=True) as logs_by_time:
        args, _ = parse_args(["logs"])

        fake_reader = logs.LogReader()
        fake_reader.SUPPORTS_TAILING = True
        fake_reader.SUPPORTS_TIME = True

        logs.pick_default_log_mode(args,
                                   fake_reader,
                                   service=None,
                                   levels=None,
                                   components=None,
                                   clusters=None,
                                   instances=None)

        # Supports tailing and time, but time should be prioritized
        assert logs_by_time.call_count == 1

    with mock.patch('paasta_tools.cli.cmds.logs.LogReader.print_last_n_logs',
                    autospec=True) as logs_by_lines:
        args, _ = parse_args(["logs"])

        fake_reader = logs.LogReader()
        fake_reader.SUPPORTS_TAILING = True
        fake_reader.SUPPORTS_TIME = True
        fake_reader.SUPPORTS_LINE_COUNT = True

        logs.pick_default_log_mode(args,
                                   fake_reader,
                                   service=None,
                                   levels=None,
                                   components=None,
                                   clusters=None,
                                   instances=None)

        # Supports tailing , time and line counts. Line counts should be prioritized
        assert logs_by_lines.call_count == 1
コード例 #2
0
def test_validate_filtering_args_with_invalid_inputs():
    fake_reader = logs.LogReader()

    fake_reader.SUPPORTS_TAILING = False
    args, _ = parse_args(["logs", "--tail"])
    assert not logs.validate_filtering_args(args, fake_reader)

    fake_reader.SUPPORTS_TIME = False
    args, _ = parse_args(["logs", "--from", "1w"])
    assert not logs.validate_filtering_args(args, fake_reader)

    fake_reader.SUPPORTS_LINE_COUNT = False
    args, _ = parse_args(["logs", "-l", "200"])
    assert not logs.validate_filtering_args(args, fake_reader)

    fake_reader.SUPPORTS_LINE_OFFSET = False
    args, _ = parse_args(["logs", "-o", "23"])
    assert not logs.validate_filtering_args(args, fake_reader)

    fake_reader.SUPPORTS_TAILING = True
    fake_reader.SUPPORTS_LINE_COUNT = True
    fake_reader.SUPPORTS_LINE_OFFSET = True
    fake_reader.SUPPORTS_TIME = True

    # Can't tail and specify lines at the same time
    args, _ = parse_args(["logs", "-l", "200", "--tail"])
    assert not logs.validate_filtering_args(args, fake_reader)

    # Can't tail and specify time at the same time
    args, _ = parse_args(["logs", "--tail", "--from", "1w"])
    assert not logs.validate_filtering_args(args, fake_reader)

    # Can't use both time and lines at the same time
    args, _ = parse_args(["logs", "--from", "1w", "-l", "100"])
    assert not logs.validate_filtering_args(args, fake_reader)
コード例 #3
0
def test_validate_filtering_args_with_valid_inputs():
    fake_reader = logs.LogReader()
    fake_reader.SUPPORTS_TAILING = True
    fake_reader.SUPPORTS_LINE_COUNT = True
    fake_reader.SUPPORTS_TIME = True
    fake_reader.SUPPORTS_LINE_OFFSET = True

    # No arguments, completely valid
    args, _ = parse_args(["logs"])
    assert logs.validate_filtering_args(args, fake_reader)
    # Tailing
    args, _ = parse_args(["logs", "--tail"])
    assert logs.validate_filtering_args(args, fake_reader)
    # Specify number of lines
    args, _ = parse_args(["logs", "-l", "200"])
    assert logs.validate_filtering_args(args, fake_reader)
    # Specify number of lines and lines to offset by
    args, _ = parse_args(["logs", "-l", "200", "-o", "23"])
    assert logs.validate_filtering_args(args, fake_reader)
    # Specify a time
    args, _ = parse_args(["logs", "--from", "1w"])
    assert logs.validate_filtering_args(args, fake_reader)