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'])
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])
def create(): p = Parser() p.float('a') p.float('c') return p
def create(): p = Parser() a = p.float('a') c = p.float('b').if_(a > 0).unless((a > 10).and_(a < 20)) return p
def create(): p = Parser() a = p.float('a') c = p.float('b').unless((a < 0).or_(a > 10)) return p
def create(): p = Parser() a = p.float('a') b = p.float('b').unless((a > 0).and_(a < 10)) return p
def create(): p = Parser() a = p.float('a') b = p.float('b') c = p.float('c').if_(a.or_(b)) return p
def create(): p = Parser() a = p.float('a') b = p.float('b').if_(a < 10) return p
def create(): p = Parser() a = p.float('a') p.int('b').unless(a < 20) return p
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'])