def test_pn_pos_errinnext_context(self): sig_str, annotation, str_rep = RepTests.pn_pos_nextpicky sig = support.s(sig_str, locals={'a': annotation}) csig = parser.CliSignature.from_signature(sig) try: util.read_arguments(csig, ('bad', )) except errors.BadArgumentFormat as exc: self.assertEqual(exc.param.display_name, 'other')
def sigerrortests(self, sig_str, args, exc_typ, message): sig = support.s(sig_str) csig = parser.CliSignature.from_signature(sig) self.assertRaises(exc_typ, read_arguments, csig, args) try: read_arguments(csig, args) except exc_typ as e: self.assertEqual('Error: ' + message, str(e))
def test_pn_pos_errinnext_context(self): sig_str, annotation, str_rep = RepTests.pn_pos_nextpicky sig = support.s(sig_str, locals={'a': annotation}) csig = parser.CliSignature.from_signature(sig) try: util.read_arguments(csig, ('bad',)) except errors.BadArgumentFormat as exc: self.assertEqual(exc.param.display_name, 'other')
def annotated_sigerror_tests(self, sig_info, in_args, exc=errors.BadArgumentFormat, message=None): sig_str, annotation, str_rep = sig_info sig = support.s(sig_str, locals={'a': annotation}) csig = parser.CliSignature.from_signature(sig) self.assertRaises(exc, util.read_arguments, csig, in_args) if message is not None: try: util.read_arguments(csig, in_args) except exc as e: self.assertEqual('Error: ' + message, str(e))
def test_flagp_conv_long(self): @parser.value_converter def conv(arg): return arg param = parser.FlagParameter(argument_name="par", value="eggs", conv=conv, aliases=["--par"]) self.assertEqual(param.get_all_names(), "--par[=CONV]") sig = support.s("*, par: p, o=False", locals={"p": param}) self._do_test(sig, parser.FlagParameter, "[--par[=CONV]]", {"conv": conv}) csig = parser.CliSignature.from_signature(sig) self.assertEqual(read_arguments(csig, []).kwargs, {}) self.assertEqual(read_arguments(csig, ["--par"]).kwargs, {"par": "eggs"}) self.assertEqual(read_arguments(csig, ["--par=ham"]).kwargs, {"par": "ham"})
def test_flagp_conv_short(self): @parser.value_converter def conv(arg): raise NotImplementedError param = parser.FlagParameter(argument_name="par", value="eggs", conv=conv, aliases=["--par", "-p"]) self.assertEqual(param.get_all_names(), "-p, --par[=CONV]") sig = support.s("*, par: p, o=False", locals={"p": param}) self._do_test(sig, parser.FlagParameter, "[-p]", {"conv": conv}) csig = parser.CliSignature.from_signature(sig) self.assertEqual(read_arguments(csig, []).kwargs, {}) self.assertEqual(read_arguments(csig, ["-p"]).kwargs, {"par": "eggs"}) self.assertEqual(read_arguments(csig, ["-po"]).kwargs, {"par": "eggs", "o": True})
def signaturetests(self, sig_str, str_rep, args, posargs, kwargs): sig = support.s(sig_str, locals={'P': parser.Parameter}) csig = parser.CliSignature.from_signature(sig) ba = read_arguments(csig, args) self.assertEqual(str(csig), str_rep) self.assertEqual(ba.args, posargs) self.assertEqual(ba.kwargs, kwargs)
def extraparamstests(self, sig_str, extra, args, posargs, kwargs, func): sig = support.s(sig_str) csig = parser.CliSignature.from_signature(sig, extra=extra) ba = read_arguments(csig, args) self.assertEqual(ba.args, posargs) self.assertEqual(ba.kwargs, kwargs) self.assertEqual(ba.func, func)
def annotated_sigtests(self, sig_info, in_args, args, kwargs): sig_str, annotation, str_rep = sig_info sig = support.s(sig_str, locals={'a': annotation}) csig = parser.CliSignature.from_signature(sig) ba = util.read_arguments(csig, in_args) self.assertEqual(ba.args, args) self.assertEqual(ba.kwargs, kwargs)
def test_flagp_conv_long(self): @parser.value_converter def conv(arg): return arg param = parser.FlagParameter(argument_name='par', value='eggs', conv=conv, aliases=['--par']) self.assertEqual(param.get_all_names(), '--par[=CONV]') sig = support.s('*, par: p, o=False', locals={'p': param}) self._do_test(sig, parser.FlagParameter, '[--par[=CONV]]', { 'conv': conv, }) csig = parser.CliSignature.from_signature(sig) self.assertEqual(read_arguments(csig, []).kwargs, {}) self.assertEqual( read_arguments(csig, ['--par']).kwargs, {'par': 'eggs'}) self.assertEqual( read_arguments(csig, ['--par=ham']).kwargs, {'par': 'ham'})
def test_flagp_conv_long(self): @parser.value_converter def conv(arg): return arg param = parser.FlagParameter( argument_name='par', value='eggs', conv=conv, aliases=['--par'] ) self.assertEqual(param.get_all_names(), '--par[=CONV]') sig = support.s('*, par: p, o=False', locals={'p': param}) self._do_test(sig, parser.FlagParameter, '[--par[=CONV]]', { 'conv': conv, }) csig = parser.CliSignature.from_signature(sig) self.assertEqual(read_arguments(csig, []).kwargs, {}) self.assertEqual(read_arguments(csig, ['--par']).kwargs, {'par': 'eggs'}) self.assertEqual(read_arguments(csig, ['--par=ham']).kwargs, {'par': 'ham'})
def test_flagp_conv_short(self): @parser.value_converter def conv(arg): raise NotImplementedError param = parser.FlagParameter( argument_name='par', value='eggs', conv=conv, aliases=['--par', '-p'] ) self.assertEqual(param.get_all_names(), '-p, --par[=CONV]') sig = support.s('*, par: p, o=False', locals={'p': param}) self._do_test(sig, parser.FlagParameter, '[-p]', { 'conv': conv, }) csig = parser.CliSignature.from_signature(sig) self.assertEqual(read_arguments(csig, []).kwargs, {}) self.assertEqual(read_arguments(csig, ['-p']).kwargs, {'par': 'eggs'}) self.assertEqual(read_arguments(csig, ['-po']).kwargs, {'par': 'eggs', 'o': True})
def test_flagp_conv_short(self): @parser.value_converter def conv(arg): raise NotImplementedError param = parser.FlagParameter(argument_name='par', value='eggs', conv=conv, aliases=['--par', '-p']) self.assertEqual(param.get_all_names(), '-p, --par[=CONV]') sig = support.s('*, par: p, o=False', locals={'p': param}) self._do_test(sig, parser.FlagParameter, '[-p]', { 'conv': conv, }) csig = parser.CliSignature.from_signature(sig) self.assertEqual(read_arguments(csig, []).kwargs, {}) self.assertEqual(read_arguments(csig, ['-p']).kwargs, {'par': 'eggs'}) self.assertEqual( read_arguments(csig, ['-po']).kwargs, { 'par': 'eggs', 'o': True })
def test_method_conv(self): class Spam(object): def method(self, arg): return self s = Spam() conv = parser.value_converter(s.method, name="TCONV") sig = support.s("*, par: conv", locals={"conv": conv}) self._do_test(sig, parser.OptionParameter, "--par=TCONV", {"conv": conv}) csig = parser.CliSignature.from_signature(sig) ba = read_arguments(csig, ["--par=arg"]) arg = ba.kwargs["par"] self.assertTrue(arg is s)
def test_method_conv(self): class Spam(object): def method(self, arg): return self s = Spam() conv = parser.value_converter(s.method, name='TCONV') sig = support.s('*, par: conv', locals={'conv': conv}) self._do_test(sig, parser.OptionParameter, '--par=TCONV', {'conv': conv}) csig = parser.CliSignature.from_signature(sig) ba = read_arguments(csig, ['--par=arg']) arg = ba.kwargs['par'] self.assertTrue(arg is s)
def test_method_conv(self): class Spam(object): def method(self, arg): return self s = Spam() conv = parser.value_converter(s.method, name='TCONV') sig = support.s('*, par: conv', locals={'conv': conv}) self._do_test(sig, parser.OptionParameter, '--par=TCONV', { 'conv': conv }) csig = parser.CliSignature.from_signature(sig) ba = read_arguments(csig, ['--par=arg']) arg = ba.kwargs['par'] self.assertTrue(arg is s)
def run_conv(self, conv, path): sig = support.s('*, par: c', locals={'c': conv}) csig = parser.CliSignature.from_signature(sig) ba = util.read_arguments(csig, ['--par', path]) return ba.kwargs['par']
def _test_func(self, conv, inp, out): sig = support.s('*, par: c', locals={'c': conv}) csig = parser.CliSignature.from_signature(sig) ba = util.read_arguments(csig, ['--par', inp]) self.assertEqual(out, ba.kwargs['par'])