コード例 #1
0
ファイル: core_test.py プロジェクト: viorel-anghel/eg
def test_parse_args_requires_version_list_or_program(mock_parse_args,
                                                     mock_error):
    """
    A valid argument configuration requires at least version, list, or program.
    """
    core._parse_arguments()
    mock_error.assert_called_once_with(core._MSG_BAD_ARGS)
コード例 #2
0
ファイル: core_test.py プロジェクト: viorel-anghel/eg
def test_parse_args_fewer_than_two_args_fails(mock_help, mock_exit):
    """
    You always need at least two arguments in argv: eg and a command.
    """
    core._parse_arguments()
    mock_help.assert_called_once_with()
    mock_exit.assert_called_once_with()
コード例 #3
0
ファイル: core_test.py プロジェクト: scorphus/eg
def test_parse_args_fewer_than_two_args_fails(mock_help, mock_exit):
    """
    You always need at least two arguments in argv: eg and a command.
    """
    core._parse_arguments()
    mock_help.assert_called_once_with()
    mock_exit.assert_called_once_with()
コード例 #4
0
ファイル: core_test.py プロジェクト: scorphus/eg
def test_parse_args_requires_version_list_or_program(
    mock_parse_args,
    mock_error
):
    """
    A valid argument configuration requires at least version, list, or program.
    """
    core._parse_arguments()
    mock_error.assert_called_once_with(core._MSG_BAD_ARGS)
コード例 #5
0
ファイル: core_test.py プロジェクト: scorphus/eg
def _helper_parses_correctly(
    additional_argv,
    expected_args,
    mock_exit,
    mock_help,
    mock_error
):
    """
    Helper method for assertions about successful argument parsing.
    """
    # For convenience, we will always include a default program here. This
    # saves callers from appending a program to all of their additional_argv,
    # and it is assumed that the special casing for when a program is passed vs
    # not will be handled elsewhere. This is a helper for asserting that our
    # calling API is as expected.
    #
    # It isn't clear if the ArgumentParser object is supposed to expose the
    # fact that it calls sys.argv for testing. We might be breaking
    # encapsulation of the API a bit, but it facilitates our own API testing
    # enough that it seems like a reasonable risk.
    default_program = 'du'
    argv = ['eg'] + additional_argv + [default_program]

    with patch('sys.argv', new=argv):
        actual_args = core._parse_arguments()
        assert actual_args.config_file == expected_args.config_file
        assert actual_args.custom_dir == expected_args.custom_dir
        assert actual_args.examples_dir == expected_args.examples_dir
        assert actual_args.list == expected_args.list
        assert actual_args.pager_cmd == expected_args.pager_cmd
        assert actual_args.use_color == expected_args.use_color
        assert actual_args.squeeze == expected_args.squeeze
        assert actual_args.version == expected_args.version
        assert actual_args.edit == expected_args.edit
        # Note that here we use the default, as described above.
        assert actual_args.program == default_program

        # Now make sure we didn't call any other parser methods
        assert mock_exit.call_args_list == []
        assert mock_help.call_args_list == []
        assert mock_error.call_args_list == []
コード例 #6
0
ファイル: core_test.py プロジェクト: viorel-anghel/eg
def _helper_parses_correctly(additional_argv, expected_args, mock_exit,
                             mock_help, mock_error):
    """
    Helper method for assertions about successful argument parsing.
    """
    # For convenience, we will always include a default program here. This
    # saves callers from appending a program to all of their additional_argv,
    # and it is assumed that the special casing for when a program is passed vs
    # not will be handled elsewhere. This is a helper for asserting that our
    # calling API is as expected.
    #
    # It isn't clear if the ArgumentParser object is supposed to expose the
    # fact that it calls sys.argv for testing. We might be breaking
    # encapsulation of the API a bit, but it facilitates our own API testing
    # enough that it seems like a reasonable risk.
    default_program = 'du'
    argv = ['eg'] + additional_argv + [default_program]

    with patch('sys.argv', new=argv):
        actual_args = core._parse_arguments()
        assert_equal(actual_args.config_file, expected_args.config_file)
        assert_equal(actual_args.custom_dir, expected_args.custom_dir)
        assert_equal(actual_args.examples_dir, expected_args.examples_dir)
        assert_equal(actual_args.list, expected_args.list)
        assert_equal(actual_args.pager_cmd, expected_args.pager_cmd)
        assert_equal(actual_args.use_color, expected_args.use_color)
        assert_equal(actual_args.squeeze, expected_args.squeeze)
        assert_equal(actual_args.version, expected_args.version)
        assert_equal(actual_args.edit, expected_args.edit)
        # Note that here we use the default, as described above.
        assert_equal(actual_args.program, default_program)

        # Now make sure we didn't call any other parser methods
        assert_equal(mock_exit.call_args_list, [])
        assert_equal(mock_help.call_args_list, [])
        assert_equal(mock_error.call_args_list, [])