Exemplo n.º 1
0
class ExtraParamsTests(object):
    _func = support.f('')
    _func2 = support.f('')
    alt_cmd = ('', [
        parser.AlternateCommandParameter(func=_func, aliases=['--alt'])
    ], ('--alt', 'a', '-b', '--third'), ['test --alt', 'a', '-b',
                                         '--third'], {}, _func)
    alt_cmd2 = ('', [
        parser.AlternateCommandParameter(func=_func, aliases=['--alt'])
    ], ('--alt', '--alpha', '-b'), ['test --alt', '--alpha', '-b'], {}, _func)
    flb_cmd_start = ('', [
        parser.FallbackCommandParameter(func=_func, aliases=['--alt'])
    ], ('--alt', '-a', 'b', '--third'), ['test --alt', '-a', 'b',
                                         '--third'], {}, _func)
    flb_cmd_valid = ('*a', [
        parser.FallbackCommandParameter(func=_func, aliases=['--alt'])
    ], ('a', '--alt', 'b', '-c', '--fourth'), ['test --alt'], {}, _func)
    flb_cmd_invalid = ('', [
        parser.FallbackCommandParameter(func=_func, aliases=['--alt'])
    ], ('a', '--alt', 'a', '-b'), ['test --alt'], {}, _func)
    flb_cmd_invalid_valid = ('a: int, b', [
        parser.FallbackCommandParameter(func=_func, aliases=['--alt'])
    ], ('xyz', 'abc', '--alt', 'def', '-g', '--hij'), ['test --alt'], {},
                             _func)
    flb_after_alt = ('a: int, b', [
        parser.AlternateCommandParameter(func=_func, aliases=['--alt']),
        parser.FallbackCommandParameter(func=_func2, aliases=['--flb']),
    ], ('--invalid', '--alt', '--flb'), ['test --flb'], {}, _func2)

    def test_alt_middle(self):
        _func = support.f('')
        args = [
            '*a',
            [parser.AlternateCommandParameter(func=_func, aliases=['--alt'])],
            ('a', '--alt', 'a', 'b'), ['a', 'b'], {}, _func
        ]
        self.assertRaises(errors.ArgsBeforeAlternateCommand, self._test_func,
                          *args)
        try:
            self._test_func(*args)
        except errors.ArgsBeforeAlternateCommand as e:
            self.assertEqual(
                'Error: Arguments found before alternate '
                'action parameter --alt', str(e))

    def test_param_extras(self):
        extra_params = [
            parser.FlagParameter(value=True,
                                 conv=parser.is_true,
                                 aliases=['-' + name],
                                 argument_name=name) for name in 'abc'
        ]
        param = parser.PositionalParameter(display_name='one',
                                           argument_name='one')
        param.extras = extra_params
        csig = parser.CliSignature([param])
        self.assertEqual('[-a] [-b] [-c] one', str(csig))
Exemplo n.º 2
0
 def test_alt_middle(self):
     _func = support.f('')
     args = [
         '*a',
         [parser.AlternateCommandParameter(func=_func, aliases=['--alt'])],
         ('a', '--alt', 'a', 'b'), ['a', 'b'], {}, _func
     ]
     exp_msg = ('Error: Arguments found before alternate '
                'action parameter --alt')
     with self.assertRaisesRegex(errors.ArgsBeforeAlternateCommand,
                                 exp_msg):
         self._test(*args)
Exemplo n.º 3
0
    def _process_alt(self, alt):
        if self.help_names:
            p = parser.FallbackCommandParameter(
                func=self.helper.cli, undocumented=self.hide_help,
                aliases=self.help_aliases)
            yield p

        for name, func in util.dict_from_names(alt).items():
            func = self.get_cli(func)
            param = parser.AlternateCommandParameter(
                undocumented=False, func=func,
                aliases=[util.name_py2cli(name, kw=True)])
            yield param
Exemplo n.º 4
0
 def test_alt_middle(self):
     _func = support.f('')
     args = [
         '*a',
         [parser.AlternateCommandParameter(func=_func, aliases=['--alt'])],
         ('a', '--alt', 'a', 'b'), ['a', 'b'], {}, _func
     ]
     self.assertRaises(errors.ArgsBeforeAlternateCommand, self._test_func,
                       *args)
     try:
         self._test_func(*args)
     except errors.ArgsBeforeAlternateCommand as e:
         self.assertEqual(
             'Error: Arguments found before alternate '
             'action parameter --alt', str(e))
Exemplo n.º 5
0
class ExtraParamsTests(Fixtures):
    def _test(self, sig_str, extra, args, posargs, kwargs, func):
        sig = support.s(sig_str)
        csig = parser.CliSignature.from_signature(sig, extra=extra)
        ba = self.read_arguments(csig, args)
        self.assertEqual(ba.args, posargs)
        self.assertEqual(ba.kwargs, kwargs)
        self.assertEqual(ba.func, func)

    _func = support.f('')
    _func2 = support.f('')

    alt_cmd = ('', [
        parser.AlternateCommandParameter(func=_func, aliases=['--alt'])
    ], ('--alt', 'a', '-b', '--third'), ['test --alt', 'a', '-b',
                                         '--third'], {}, _func)
    alt_cmd2 = ('', [
        parser.AlternateCommandParameter(func=_func, aliases=['--alt'])
    ], ('--alt', '--alpha', '-b'), ['test --alt', '--alpha', '-b'], {}, _func)
    flb_cmd_start = ('', [
        parser.FallbackCommandParameter(func=_func, aliases=['--alt'])
    ], ('--alt', '-a', 'b', '--third'), ['test --alt', '-a', 'b',
                                         '--third'], {}, _func)
    flb_cmd_valid = ('*a', [
        parser.FallbackCommandParameter(func=_func, aliases=['--alt'])
    ], ('a', '--alt', 'b', '-c', '--fourth'), ['test --alt'], {}, _func)
    flb_cmd_invalid = ('', [
        parser.FallbackCommandParameter(func=_func, aliases=['--alt'])
    ], ('a', '--alt', 'a', '-b'), ['test --alt'], {}, _func)
    flb_cmd_invalid_valid = ('a: int, b', [
        parser.FallbackCommandParameter(func=_func, aliases=['--alt'])
    ], ('xyz', 'abc', '--alt', 'def', '-g', '--hij'), ['test --alt'], {},
                             _func)
    flb_after_alt = ('a: int, b', [
        parser.AlternateCommandParameter(func=_func, aliases=['--alt']),
        parser.FallbackCommandParameter(func=_func2, aliases=['--flb']),
    ], ('--invalid', '--alt', '--flb'), ['test --flb'], {}, _func2)

    def test_alt_middle(self):
        _func = support.f('')
        args = [
            '*a',
            [parser.AlternateCommandParameter(func=_func, aliases=['--alt'])],
            ('a', '--alt', 'a', 'b'), ['a', 'b'], {}, _func
        ]
        exp_msg = ('Error: Arguments found before alternate '
                   'action parameter --alt')
        with self.assertRaisesRegex(errors.ArgsBeforeAlternateCommand,
                                    exp_msg):
            self._test(*args)

    def test_param_extras(self):
        extra_params = [
            parser.FlagParameter(value=True,
                                 conv=parser.is_true,
                                 aliases=['-' + name],
                                 argument_name=name) for name in 'abc'
        ]
        param = parser.PositionalParameter(display_name='one',
                                           argument_name='one')
        param.extras = extra_params
        csig = parser.CliSignature([param])
        self.assertEqual('[-a] [-b] [-c] one', str(csig))