Example #1
0
    def test_get_command_config(self):
        """Test successful and unsuccessful module loading."""
        cmd_cfg, error_msg = get_command_config(
                'pyqi.interfaces.optparse.config', 'make_bash_completion')
        self.assertEqual(cmd_cfg,
                         pyqi.interfaces.optparse.config.make_bash_completion)
        self.assertEqual(error_msg, None)

        cmd_cfg, error_msg = get_command_config(
                'hopefully.nonexistent.python.module', 'umm',
                exit_on_failure=False)
        self.assertEqual(cmd_cfg, None)
        self.assertEqual(error_msg, 'No module named hopefully.nonexistent.'
                                    'python.module.umm')
Example #2
0
    def run(self, **kwargs):
        driver = kwargs['driver_name']
        cfg_mod_path = kwargs['command_config_module']
        cfg_mod = _get_cfg_module(cfg_mod_path)
        command_names = get_command_names(cfg_mod_path)
        command_list = ' '.join(command_names)

        commands = []
        for cmd in command_names:
            cmd_cfg, _ = get_command_config(cfg_mod_path,
                                            cmd,
                                            exit_on_failure=False)

            if cmd_cfg is not None:
                command_options = []
                command_options.extend(
                    sorted(['--%s' % p.Name for p in cmd_cfg.inputs]))
                opts = ' '.join(command_options)

                commands.append(command_fmt % {
                    'command': cmd,
                    'options': opts
                })

        all_commands = ''.join(commands)
        return {
            'result': script_fmt % {
                'driver': driver,
                'commands': all_commands,
                'command_list': command_list
            }
        }
Example #3
0
def get_cmd_obj(cmd_cfg_mod, cmd):
    """Get a ``Command`` object"""
    cmd_cfg,_ = get_command_config(cmd_cfg_mod, cmd)
    cmd_class = html_interface_factory(cmd_cfg.CommandConstructor, [], 
                            cmd_cfg.inputs, cmd_cfg.outputs,
                            cmd_cfg.__version__, cmd)
    cmd_obj = cmd_class()
    return cmd_obj
Example #4
0
def get_cmd_obj(cmd_cfg_mod, cmd):
    """Get a ``Command`` object"""
    cmd_cfg, _ = get_command_config(cmd_cfg_mod, cmd)
    version_str = get_version_string(cmd_cfg_mod)
    cmd_class = html_interface_factory(cmd_cfg.CommandConstructor, [],
                                       cmd_cfg.inputs, cmd_cfg.outputs,
                                       version_str, cmd)
    cmd_obj = cmd_class()
    return cmd_obj
Example #5
0
    def test_get_command_config(self):
        """Test successful and unsuccessful module loading."""
        cmd_cfg, error_msg = get_command_config(
            'pyqi.interfaces.optparse.config', 'make_bash_completion')
        self.assertEqual(cmd_cfg,
                         pyqi.interfaces.optparse.config.make_bash_completion)
        self.assertEqual(error_msg, None)

        cmd_cfg, error_msg = get_command_config(
            'hopefully.nonexistent.python.module',
            'umm',
            exit_on_failure=False)
        self.assertEqual(cmd_cfg, None)

        py2_err = 'No module named hopefully.nonexistent.python.module.umm'
        py3_err = "No module named 'hopefully'"
        if is_py2():
            self.assertEqual(error_msg, py2_err)
        else:
            self.assertEqual(error_msg, py3_err)
Example #6
0
    def run(self, **kwargs):
        driver = kwargs['driver_name']
        cfg_mod_path = kwargs['command_config_module']
        cfg_mod = _get_cfg_module(cfg_mod_path)
        command_names = get_command_names(cfg_mod_path)
        command_list = ' '.join(command_names)

        commands = []
        for cmd in command_names:
            cmd_cfg, _ = get_command_config(cfg_mod_path, cmd,
                                            exit_on_failure=False)

            if cmd_cfg is not None:
                command_options = []
                command_options.extend(
                        sorted(['--%s' % p.Name for p in cmd_cfg.inputs]))
                opts = ' '.join(command_options)

                commands.append(command_fmt % {'command':cmd, 'options':opts})

        all_commands = ''.join(commands)
        return {'result':script_fmt % {'driver':driver,
                                       'commands':all_commands,
                                       'command_list':command_list}}