Exemplo n.º 1
0
    def test_conditions(self):
        p = Parser()
        a = p.float('a')
        b = p.float('b')
        c = p.float('c').requires(a.or_(b))
        self.assertRaises(DependencyError, p._process_command_line, ['--c', '9.2'])
        p._process_command_line(['--a', '11', '--c', '9.2'])
        p._process_command_line(['--b', '11', '--c', '9.2'])

        def create():
            p = Parser()
            a = p.float('a')
            b = p.float('b')
            c = p.float('c').if_(a.or_(b))
            return p

        create()._process_command_line(['--c', '9.2'])

        self.assertRaises(MissingRequiredArgumentError,
                create()._process_command_line, ['--a', '11'])

        create()._process_command_line(['--a', '11', '--c', '9.2'])
        self.assertRaises(MissingRequiredArgumentError,
                create()._process_command_line, ['--b', '11'])

        create()._process_command_line(['--b', '11', '--c', '9.2'])
Exemplo n.º 2
0
    def test_help(self):
        p = Parser()
        p.int('a').described_as('a fun variable')
        p.float('b').described_as('yet another a fun variable')
        p.float('c').described_as('')
        p.float('d').required()
        p['a'].requires('b')
        p['b'].conflicts('a', 'c')
        p['b'].requires('b')
        p._sys_exit_error = FakeSystemExit
        p.out = StringIO()

        self.assertRaises(FakeSystemExit, p._process_command_line, ['--help'])

        self.assertEqual(p.out.getvalue(), 'Usage: %s [--a <int>] [--c <float>] [--b <float>] [--help/-h] [--d <float>]\nOptions: (! denotes required argument)\n   --a <int>      a fun variable                                         Requires --b\n   --c <float>                                                                       \n   --b <float>    yet another a fun variable   Conflicts with --a, --c   Requires --b\n   --help/-h      Print help message.                                                \n   !--d <float>                                                                      \n' % sys.argv[0])
Exemplo n.º 3
0
 def create():
     p = Parser()
     p.float('a')
     p.float('c')
     return p
Exemplo n.º 4
0
 def create():
     p = Parser()
     a = p.float('a')
     c = p.float('b').if_(a > 0).unless((a > 10).and_(a < 20))
     return p
Exemplo n.º 5
0
 def create():
     p = Parser()
     a = p.float('a')
     c = p.float('b').unless((a < 0).or_(a > 10))
     return p
Exemplo n.º 6
0
 def create():
     p = Parser()
     a = p.float('a')
     b = p.float('b').unless((a > 0).and_(a < 10))
     return p
Exemplo n.º 7
0
 def create():
     p = Parser()
     a = p.float('a')
     b = p.float('b')
     c = p.float('c').if_(a.or_(b))
     return p
Exemplo n.º 8
0
 def create():
     p = Parser()
     a = p.float('a')
     b = p.float('b').if_(a < 10)
     return p
Exemplo n.º 9
0
 def create():
     p = Parser()
     a = p.float('a')
     p.int('b').unless(a < 20)
     return p
Exemplo n.º 10
0
    def test_numeric_conditions(self):
        def create():
            p = Parser()
            a = p.float('a')
            p.int('b').unless(a < 20)
            return p

#        self.assertRaises(MissingRequiredArgumentError, create()._process_command_line, ['--a', '20'])
        create()._process_command_line(['--a', '19'])
        create()._process_command_line(['--a', '9'])
        create()._process_command_line(['--b', '3', '--a', '29'])

        def create2():
            p = create()
            p.int('c').unless(10 < p['a'])
            return p

        self.assertRaises(MissingRequiredArgumentError, create2()._process_command_line, ['--a', '20'])
        self.assertRaises(MissingRequiredArgumentError, create2()._process_command_line, ['--a', '9'])
        create2()._process_command_line(['--a', '19'])

        def create3():
            p = create2()
            p.int('d').unless(p['a'] == 19)
            return p

        self.assertRaises(MissingRequiredArgumentError, create3()._process_command_line, ['--a', '20'])
        self.assertRaises(MissingRequiredArgumentError, create3()._process_command_line, ['--a', '9'])
        create3()._process_command_line(['--a', '19'])

        def create4():
            p = create3()
            p.int('e').unless(p['a'] == p['d'])
            return p

        self.assertRaises(MissingRequiredArgumentError, create4()._process_command_line, ['--a', '19'])
        self.assertRaises(MissingRequiredArgumentError, create4()._process_command_line, ['--a', '19', '--d', '18'])
        create4()._process_command_line(['--a', '19', '--d', '19'])

        def create5():
            p = create4()
            p.int('f').unless(p['e'] != p['d'])
            return p

        self.assertRaises(MissingRequiredArgumentError,
                create5()._process_command_line, ['--a', '19'])

        self.assertRaises(MissingRequiredArgumentError,
                create5()._process_command_line, ['--a', '19', '--d', '18'])

        self.assertRaises(MissingRequiredArgumentError,
                create5()._process_command_line, ['--a', '19', '--d', '19', '--e',
                    '19'])

        create5()._process_command_line(['--a', '19', '--d', '19', '--e', '18'])

        p = Parser()
        a = p.float('a')
        b = p.float('b').requires(a < 10)
        self.assertRaises(ConditionError, p._process_command_line, ['--b',
            '3.9', '--a', '11'])

        def create():
            p = Parser()
            a = p.float('a')
            b = p.float('b').if_(a < 10)
            return p

        self.assertRaises(MissingRequiredArgumentError,
                create()._process_command_line, ['--a', '8'])

        create()._process_command_line(['--a', '11'])