コード例 #1
0
ファイル: test_version.py プロジェクト: robobrobro/foe
def test_too_many_arguments():
    try:
        execute_module_command(version_command, command=version_command.commands[0],
            command_line=[version_command.commands[0], version_command.commands[0]])
        assert False
    except SystemExit as e:
        assert e.code != 0
コード例 #2
0
ファイル: test_show.py プロジェクト: robobrobro/foe
def test_show_all_matches():
    cfg = load_config()
    find_settings = load_settings()
    find_settings['dirs'] = [os.path.dirname(__file__)]
    find_settings['file_patterns'] = '*{file}'.format(file=os.path.basename(__file__))
    find_settings['pattern'] = 'test'
    assert execute_module_command(show_command, command=show_command.commands[0],
            command_line=[], cfg=cfg, find_settings=find_settings)
コード例 #3
0
ファイル: test_edit.py プロジェクト: robobrobro/foe
def test_edit_at_least_one_match():
    cfg = load_config()
    cfg.set('edit', 'editor', 'echo')
    find_settings = load_settings()
    find_settings['dirs'] = [os.path.dirname(__file__)]
    find_settings['file_patterns'] = '*{file}'.format(file=os.path.basename(__file__))
    find_settings['pattern'] = 'test'
    assert execute_module_command(edit_command, command=edit_command.commands[0],
            command_line=['1'], cfg=cfg, find_settings=find_settings)
コード例 #4
0
ファイル: help.py プロジェクト: robobrobro/foe
def execute(parsed_args=None, interactive=False, *args, **kwargs):
    """ Executes the help command. """
    
    if not parsed_args or not parsed_args.command:
        if not interactive:
            usage = '%(prog)s [command line]'
        else:
            usage = argparse.SUPPRESS

        parser = argparse.ArgumentParser(prog=get_program_name(), description=get_description(),
                usage=usage, add_help=False)

        # Recursively search through foe command modules and
        # add an argument to the parser for each command.
        group = parser.add_argument_group(title='commands')
        for loader, name, ispkg in walk_packages(foe_commands.__path__):
            module = loader.find_module(name).load_module(name)
            module_commands = getattr(module, 'commands', [])
            module_description = getattr(module, 'description', '')
            non_dash_commands = list(filter(lambda c: not c.startswith('-'), module_commands))
            if non_dash_commands:
                group.add_argument(*non_dash_commands, help=module_description)
            dash_commands = list(filter(lambda c: c.startswith('-'), module_commands))
            if dash_commands and not interactive:
                group.add_argument(*dash_commands, help=module_description, action='store_true')

        parser.print_help()
        return True
    else:
        # Recursively search through foe command modules.
        for loader, name, ispkg in walk_packages(foe_commands.__path__):
            module = loader.find_module(name).load_module(name)
            module_commands = getattr(module, 'commands', [])
            
            # If the command can be handled by the module,
            # and execute the command's help function.
            if parsed_args.command in module_commands:
                return execute_module_command(module, command=parsed_args.command, command_line=['-h'])

        print_invalid_command(parsed_args.command)
        return False
コード例 #5
0
ファイル: test_exit.py プロジェクト: robobrobro/foe
def test_exit():
    assert execute_module_command(exit_command, command=exit_command.commands[0])
コード例 #6
0
ファイル: test_edit.py プロジェクト: robobrobro/foe
def test_edit_current_dir():
    cfg = load_config()
    find_settings = load_settings()
    find_settings['dirs'] = [os.path.dirname(__file__)]
    assert not execute_module_command(edit_command, command=edit_command.commands[0],
            command_line=['1'], cfg=cfg, find_settings=find_settings)
コード例 #7
0
def test_invalid_command():
    assert execute_module_command(help_command, command='thisisaninvalidcommand') is None
コード例 #8
0
ファイル: test_edit.py プロジェクト: robobrobro/foe
def test_edit_number_invalid():
    cfg = load_config()
    assert not execute_module_command(edit_command, command=edit_command.commands[0],
            command_line=['0'], cfg=cfg)
コード例 #9
0
ファイル: test_edit.py プロジェクト: robobrobro/foe
def test_edit_no_settings():
    cfg = load_config()
    assert not execute_module_command(edit_command, command=edit_command.commands[0],
            command_line=['1'], cfg=cfg)
コード例 #10
0
def test_help():
    assert execute_module_command(help_command, command=help_command.commands[0])
コード例 #11
0
ファイル: test_edit.py プロジェクト: robobrobro/foe
def test_edit_no_cfg():
    assert not execute_module_command(edit_command, command=edit_command.commands[0],
            command_line=['1'])
コード例 #12
0
ファイル: test_version.py プロジェクト: robobrobro/foe
def test_version():
    assert execute_module_command(version_command, command=version_command.commands[0])
コード例 #13
0
def test_module_only():
    assert execute_module_command(help_command) is None
コード例 #14
0
ファイル: test_find.py プロジェクト: robobrobro/foe
def test_foe_pattern_print_format_unknown_key():
    cfg = load_config()
    cfg.set('match', 'PRINT_FORMAT', '{asdf}')
    assert not execute_module_command(find_command, command=find_command.commands[0],
            command_line=['test', '-f', __file__], cfg=cfg)
コード例 #15
0
ファイル: test_find.py プロジェクト: robobrobro/foe
def test_foe_pattern_match():
    assert execute_module_command(find_command, command=find_command.commands[0],
            command_line=['test', '-f', __file__], cfg=load_config())
コード例 #16
0
ファイル: test_find.py プロジェクト: robobrobro/foe
def test_foe_pattern_no_cfg():
    assert not execute_module_command(find_command, command=find_command.commands[0],
            command_line=['test', '-f', __file__])
コード例 #17
0
ファイル: test_find.py プロジェクト: robobrobro/foe
def test_foe_no_pattern():
    assert execute_module_command(find_command, command=find_command.commands[0])
コード例 #18
0
def test_module_is_none():
    assert execute_module_command(None) is None
コード例 #19
0
ファイル: test_show.py プロジェクト: robobrobro/foe
def test_show_no_cfg():
    assert not execute_module_command(show_command, command=show_command.commands[0],
            command_line=['1'])
コード例 #20
0
def test_module_is_not_a_command():
    assert execute_module_command(sys.modules[__name__]) is None