Example #1
0
 def test_multiflag(self):
     # test multi-flag
     options = core.Options(
         arguments.Flag('flagone', true_values=['on'], default=False),
         arguments.Flag('flagtwo', false_values=['off'], default=True),
     )
     dummy_tokens = DummyTokens('On', 'On')
     dummy_context = {}
     kwargs, blocks = options.parse(dummy_parser, dummy_tokens)
     self.assertEqual(blocks, {})
     self.assertEqual(kwargs['flagone'].resolve(dummy_context), True)
     self.assertEqual(kwargs['flagtwo'].resolve(dummy_context), True)
Example #2
0
 def test_flag_wrong_value(self):
     options = core.Options(
         arguments.Flag('myflag', true_values=['on'], false_values=['off']))
     # test exceptions
     dummy_tokens = DummyTokens('myval')
     self.assertRaises(exceptions.InvalidFlag, options.parse, dummy_parser,
                       dummy_tokens)
Example #3
0
 def test_flag_false_value(self):
     options = core.Options(
         arguments.Flag('myflag', true_values=['on'], false_values=['off']))
     dummy_tokens = DummyTokens('off')
     dummy_context = {}
     kwargs, blocks = options.parse(dummy_parser, dummy_tokens)
     self.assertEqual(blocks, {})
     self.assertEqual(kwargs['myflag'].resolve(dummy_context), False)
Example #4
0
 def test_case_sensitive_flag_okay(self):
     options = core.Options(
         arguments.Flag('myflag',
                        true_values=['on'],
                        default=False,
                        case_sensitive=True))
     dummy_tokens = DummyTokens('on')
     dummy_context = {}
     kwargs, blocks = options.parse(dummy_parser, dummy_tokens)
     self.assertEqual(blocks, {})
     self.assertEqual(kwargs['myflag'].resolve(dummy_context), True)
Example #5
0
 def test_06_complex(self):
     """
     test a complex tag option parser
     """
     options = core.Options(
         arguments.Argument('singlearg'),
         arguments.MultiValueArgument('multiarg', required=False),
         'as',
         arguments.Argument('varname', required=False),
         'safe',
         arguments.Flag('safe', true_values=['on', 'true'], default=False)
     )
     # test simple 'all arguments given'
     dummy_tokens = DummyTokens(1, 2, 3, 'as', 4, 'safe', 'true')
     dummy_context = {}
     kwargs, blocks = options.parse(dummy_parser, dummy_tokens)
     self.assertEqual(blocks, {})
     self.assertEqual(len(kwargs), 4)
     expected = [
         ('singlearg', 1),
         ('multiarg', [2, 3]),
         ('varname', 4),
         ('safe', True)
     ]
     for key, value in expected:
         self.assertEqual(kwargs[key].resolve(dummy_context), value)
     # test 'only first argument given'
     dummy_tokens = DummyTokens(1)
     kwargs, blocks = options.parse(dummy_parser, dummy_tokens)
     self.assertEqual(blocks, {})
     self.assertEqual(len(kwargs), 4)
     expected = [
         ('singlearg', 1),
         ('multiarg', []),
         ('varname', None),
         ('safe', False)
     ]
     for key, value in expected:
         self.assertEqual(kwargs[key].resolve(dummy_context), value)
     # test first argument and last argument given
     dummy_tokens = DummyTokens(2, 'safe', 'false')
     kwargs, blocks = options.parse(dummy_parser, dummy_tokens)
     self.assertEqual(blocks, {})
     self.assertEqual(len(kwargs), 4)
     expected = [
         ('singlearg', 2),
         ('multiarg', []),
         ('varname', None),
         ('safe', False)
     ]
     for key, value in expected:
         self.assertEqual(kwargs[key].resolve(dummy_context), value)
Example #6
0
 def test_04_flag(self):
     """
     Test flag arguments
     """
     options = core.Options(
         arguments.Flag('myflag', true_values=['on'], false_values=['off'])
     )
     dummy_tokens = DummyTokens('on')
     dummy_context = {}
     kwargs, blocks = options.parse(dummy_parser, dummy_tokens)
     self.assertEqual(blocks, {})
     self.assertEqual(kwargs['myflag'].resolve(dummy_context), True)
     dummy_tokens = DummyTokens('off')
     kwargs, blocks = options.parse(dummy_parser, dummy_tokens)
     self.assertEqual(blocks, {})
     self.assertEqual(kwargs['myflag'].resolve(dummy_context), False)
     # test exceptions
     dummy_tokens = DummyTokens('myval')
     self.assertRaises(exceptions.InvalidFlag,
                       options.parse, dummy_parser, dummy_tokens)
     options = core.Options(
         arguments.Flag('myflag', true_values=['on'])
     )
     dummy_tokens = DummyTokens('myval')
     self.assertRaises(exceptions.InvalidFlag,
                       options.parse, dummy_parser, dummy_tokens)
     options = core.Options(
         arguments.Flag('myflag', false_values=['off'])
     )
     dummy_tokens = DummyTokens('myval')
     self.assertRaises(exceptions.InvalidFlag,
                       options.parse, dummy_parser, dummy_tokens)
     self.assertRaises(ImproperlyConfigured, arguments.Flag, 'myflag')
     # test case sensitive flag
     options = core.Options(
         arguments.Flag('myflag', true_values=['on'], default=False,
                        case_sensitive=True)
     )
     dummy_tokens = DummyTokens('On')
     kwargs, blocks = options.parse(dummy_parser, dummy_tokens)
     self.assertEqual(blocks, {})
     self.assertEqual(kwargs['myflag'].resolve(dummy_context), False)
     dummy_tokens = DummyTokens('on')
     kwargs, blocks = options.parse(dummy_parser, dummy_tokens)
     self.assertEqual(blocks, {})
     self.assertEqual(kwargs['myflag'].resolve(dummy_context), True)
     # test multi-flag
     options = core.Options(
         arguments.Flag('flagone', true_values=['on'], default=False),
         arguments.Flag('flagtwo', false_values=['off'], default=True),
     )
     dummy_tokens = DummyTokens('On', 'On')
     kwargs, blocks = options.parse(dummy_parser, dummy_tokens)
     self.assertEqual(blocks, {})
     self.assertEqual(kwargs['flagone'].resolve(dummy_context), True)
     self.assertEqual(kwargs['flagtwo'].resolve(dummy_context), True)
Example #7
0
 def test_complex_only_first_argument(self):
     options = core.Options(
         arguments.Argument('singlearg'),
         arguments.MultiValueArgument('multiarg', required=False), 'as',
         arguments.Argument('varname', required=False), 'safe',
         arguments.Flag('safe', true_values=['on', 'true'], default=False))
     # test 'only first argument given'
     dummy_tokens = DummyTokens(1)
     dummy_context = {}
     kwargs, blocks = options.parse(dummy_parser, dummy_tokens)
     self.assertEqual(blocks, {})
     self.assertEqual(len(kwargs), 4)
     expected = [('singlearg', 1), ('multiarg', []), ('varname', None),
                 ('safe', False)]
     for key, value in expected:
         self.assertEqual(kwargs[key].resolve(dummy_context), value)
Example #8
0
 def test_flag_wrong_value_no_true(self):
     options = core.Options(arguments.Flag('myflag', false_values=['off']))
     dummy_tokens = DummyTokens('myval')
     self.assertRaises(exceptions.InvalidFlag, options.parse, dummy_parser,
                       dummy_tokens)
     self.assertRaises(ImproperlyConfigured, arguments.Flag, 'myflag')