예제 #1
0
    def test_commandhandler_construct_required_option_with_default(self):
        with self.assertRaises(opttools.StructureError):

            def func(a, *, b):
                pass  # pragma no cover
            opttools.CommandHandler(func, a='_a:=a', b='_b:str')\
                (['test', '-a', 'vala', '-bvalb'])
예제 #2
0
    def test_commandhandler_construct_mix_positional_and_variable_args(self):
        with self.assertRaises(opttools.StructureError):

            def func(a, *b):
                pass  # pragma no cover

            opttools.CommandHandler(func)(['test'])
예제 #3
0
    def test_commandhandler_construct_guess_parse_dict(self):
        def func(*, di={}):
            self.mock(di)

        opttools.CommandHandler(func)(['test', '--d', 'a=1,b=2,c'])
        self.mock.assert_called_once_with([('a', '1'), ('b', '2'),
                                           ('c', None)])
예제 #4
0
    def test_commandhandler_parse_missing_option(self):
        with self.assertRaises(opttools.OptionError):

            def func(*, s):
                pass  # pragma no cover

            opttools.CommandHandler(func, s=':str')(['test'])
예제 #5
0
    def test_commandhandler_construct_hint_optional_without_default(self):
        with self.assertRaises(opttools.StructureError):

            def func(*, a, b):
                pass  # pragma no cover

            opttools.CommandHandler(func, a='::', b='::=')(['test', 'a', 'b'])
예제 #6
0
    def test_commandhandler_construct_hint_duplicate(self):
        with self.assertRaises(opttools.StructureError):

            def func(*, a, b):
                pass  # pragma no cover

            opttools.CommandHandler(func, a='d', b='d')(['test', 'a', 'b'])
예제 #7
0
    def test_commandhandler_construct_mono_positional_args(self):
        def func(input):
            self.mock(input)

        ch = opttools.CommandHandler(func, input='i::str=-')
        ch(['test', '--input=foobar'])
        self.mock.assert_called_once_with('foobar')
        with self.assertRaises(opttools.OptionError):
            ch(['test'])
예제 #8
0
 def test_commandhandler_construct_guess_parse(self):
     def func(*, i=0, s='', b=False, l=[]):
         self.mock(i=i, s=s, b=b, l=l)
     opttools.CommandHandler(func)\
         (['test', '--i', '16', '--s', 's', '--b', 'N', '--l', 'x,y,z'])
     self.mock.assert_called_once_with(i=16,
                                       s='s',
                                       b=False,
                                       l=['x', 'y', 'z'])
예제 #9
0
    def test_commandhandler_construct(self):
        def func(*args, aflag=None, bflag=None, cflag=None):
            self.mock(*args, aflag=aflag, bflag=bflag, cflag=cflag)

        opttools.CommandHandler(func)(
            ['test', '--aflag', '--bflag', '--cflag'])
        self.mock.assert_called_once_with(aflag='None',
                                          bflag='None',
                                          cflag='None')
예제 #10
0
 def test_commandhandler_construct_required_option(self):
     def func(a, *, b):
         self.mock(a, b)
     opttools.CommandHandler(func, a='_a:', b='_b:str')\
         (['test', '-a', 'vala', '-bvalb'])
예제 #11
0
    def test_commandhandler_construct_guess(self):
        def func(*, i=0, s='', b=False, l=[]):
            self.mock(i=i, s=s, b=b, l=l)

        opttools.CommandHandler(func)(['test'])
        self.mock.assert_called_once_with(i=0, s='', b=False, l=[])
예제 #12
0
 def test_commandhandler_construct_hint(self):
     def func(*args, aflag=None, bflag=None, cflag=None):
         self.mock(*args, aflag=aflag, bflag=bflag, cflag=cflag)
     opttools.CommandHandler(func, aflag='_a', bflag='_b', cflag='_c::=-')\
         (['test', '-a', '-b', '-c'])
     self.mock.assert_called_once_with(aflag='', bflag='', cflag='-')
예제 #13
0
 def test_commandhandler_parse_integers_smart(self):
     def func(*, h, d, o, b):
         self.mock(h=h, d=d, o=o, b=b)
     opttools.CommandHandler(func, h='h:int', d='d:int', o='o:int', b='b:int')\
         (['test', '-h', '0X10', '-d', '012', '-o', '0O10', '-b', '0B10'])
     self.mock.assert_called_once_with(h=16, d=10, o=8, b=2)
예제 #14
0
 def test_commandhandler_parse_integers(self):
     def func(*, h, d, o, b):
         self.mock(h=h, d=d, o=o, b=b)
     opttools.CommandHandler(func, h='h:hex', d='d:dec', o='o:oct', b='b:bin')\
         (['test', '-h', '10', '-d', '10', '-o', '10', '-b', '10'])
     self.mock.assert_called_once_with(h=16, d=10, o=8, b=2)