def test_update_parser(self, update_parser): apm = argument.ArgumentParseManager('exe', {}) apm.update_parser() self.assertEqual(len(update_parser.mock_calls), 0) expd = dict(k1=argument.Argument(0, parsed_name='-a'), k2=argument.Argument(0, parsed_name='-b')) apm.update_parser(expd) self.assertEqual(len(update_parser.mock_calls), 2)
def test_unparsed(self, parse): apm = argument.ArgumentParseManager('exe', {}) self.assertEqual(apm.unparsed, None) exp = 'you have been unparsed' apm._unparsed = exp self.assertEqual(apm.unparsed, exp) apm._parser_modified = True apm._unparsed = exp + ' v2' self.assertEqual(apm.unparsed, exp + ' v2') self.assertEqual(parse.mock_calls, [call(), call()])
def test_arguments(self, update_parser): apm = argument.ArgumentParseManager('exe', {}) assert update_parser.call_count == 1 exp = {'k1': 'v1', 'k2': 'v2'} apm.arguments = exp assert_dicts_are_equal(self, apm.arguments, exp) self.assertEqual(update_parser.mock_calls[-1], call()) try: apm.arguments = None except Exception as e: self.assertTrue(isinstance(e, AssertionError))
def test_update_arguments(self): (inp, cor, exp) = ({ 'k1': 'v1', 'k2': 'v3' }, { 'k2': 'v2' }, { 'k1': 'v1', 'k2': 'v2' }) apm = argument.ArgumentParseManager('exe', {}) with patch('%s.ArgumentParseManager.update_parser' % arg_path) as UP: apm.update_arguments(None) self.assertEqual(len(UP.mock_calls), 0) apm._arguments = inp apm.update_arguments(cor) assert_dicts_are_equal(self, apm.arguments, exp) UP.assert_called_once_with()
def test___init__(self, parse, update_parser): for arguments in ({}, {'k1': 'v1', 'k2': 'v2'}): apm = argument.ArgumentParseManager('exe', arguments) self.assertTrue(isinstance(apm, argument.ArgumentParseManager)) self.assertTrue(isinstance(apm.parser, argument.ArgumentParser)) self.assertFalse(apm.parser.add_help) self.assertEqual(apm.parser.formatter_class, argument.RawDescriptionHelpFormatter) self.assertEqual(apm.syntax, 'exe <cmd_group> [<cmd_subbroup> ...] <cmd>') assert_dicts_are_equal(self, apm.arguments, arguments) self.assertFalse(apm._parser_modified) self.assertEqual(apm._parsed, None) self.assertEqual(apm._unparsed, None) self.assertEqual(parse.mock_calls[-1], call()) if arguments: assert update_parser.call_count == 2
def test_parse(self): apm = argument.ArgumentParseManager('exe', {}) parsed, unparsed = apm.parser.parse_known_args() apm.parse() self.assertEqual(apm._parsed, parsed) self.assertEqual(apm.unparsed, unparsed)
def test_syntax(self): apm = argument.ArgumentParseManager('exe', {}) self.assertEqual(apm.syntax, 'exe <cmd_group> [<cmd_subbroup> ...] <cmd>') apm.syntax = 'some syntax' self.assertEqual(apm.syntax, 'some syntax')