Author: Maciej Fijalkowski <fij...@gmail.com> Branch: Changeset: r51183:5f4b16c8ec98 Date: 2012-01-10 00:29 +0200 http://bitbucket.org/pypy/pypy/changeset/5f4b16c8ec98/
Log: merge diff --git a/pypy/annotation/description.py b/pypy/annotation/description.py --- a/pypy/annotation/description.py +++ b/pypy/annotation/description.py @@ -257,7 +257,8 @@ try: inputcells = args.match_signature(signature, defs_s) except ArgErr, e: - raise TypeError, "signature mismatch: %s" % e.getmsg(self.name) + raise TypeError("signature mismatch: %s() %s" % + (self.name, e.getmsg())) return inputcells def specialize(self, inputcells, op=None): diff --git a/pypy/interpreter/argument.py b/pypy/interpreter/argument.py --- a/pypy/interpreter/argument.py +++ b/pypy/interpreter/argument.py @@ -428,8 +428,8 @@ return self._match_signature(w_firstarg, scope_w, signature, defaults_w, 0) except ArgErr, e: - raise OperationError(self.space.w_TypeError, - self.space.wrap(e.getmsg(fnname))) + raise operationerrfmt(self.space.w_TypeError, + "%s() %s", fnname, e.getmsg()) def _parse(self, w_firstarg, signature, defaults_w, blindargs=0): """Parse args and kwargs according to the signature of a code object, @@ -450,8 +450,8 @@ try: return self._parse(w_firstarg, signature, defaults_w, blindargs) except ArgErr, e: - raise OperationError(self.space.w_TypeError, - self.space.wrap(e.getmsg(fnname))) + raise operationerrfmt(self.space.w_TypeError, + "%s() %s", fnname, e.getmsg()) @staticmethod def frompacked(space, w_args=None, w_kwds=None): @@ -626,7 +626,7 @@ class ArgErr(Exception): - def getmsg(self, fnname): + def getmsg(self): raise NotImplementedError class ArgErrCount(ArgErr): @@ -642,11 +642,10 @@ self.num_args = got_nargs self.num_kwds = nkwds - def getmsg(self, fnname): + def getmsg(self): n = self.expected_nargs if n == 0: - msg = "%s() takes no arguments (%d given)" % ( - fnname, + msg = "takes no arguments (%d given)" % ( self.num_args + self.num_kwds) else: defcount = self.num_defaults @@ -672,8 +671,7 @@ msg2 = " non-keyword" else: msg2 = "" - msg = "%s() takes %s %d%s argument%s (%d given)" % ( - fnname, + msg = "takes %s %d%s argument%s (%d given)" % ( msg1, n, msg2, @@ -686,9 +684,8 @@ def __init__(self, argname): self.argname = argname - def getmsg(self, fnname): - msg = "%s() got multiple values for keyword argument '%s'" % ( - fnname, + def getmsg(self): + msg = "got multiple values for keyword argument '%s'" % ( self.argname) return msg @@ -722,13 +719,11 @@ break self.kwd_name = name - def getmsg(self, fnname): + def getmsg(self): if self.num_kwds == 1: - msg = "%s() got an unexpected keyword argument '%s'" % ( - fnname, + msg = "got an unexpected keyword argument '%s'" % ( self.kwd_name) else: - msg = "%s() got %d unexpected keyword arguments" % ( - fnname, + msg = "got %d unexpected keyword arguments" % ( self.num_kwds) return msg diff --git a/pypy/interpreter/test/test_argument.py b/pypy/interpreter/test/test_argument.py --- a/pypy/interpreter/test/test_argument.py +++ b/pypy/interpreter/test/test_argument.py @@ -393,8 +393,8 @@ class FakeArgErr(ArgErr): - def getmsg(self, fname): - return "msg "+fname + def getmsg(self): + return "msg" def _match_signature(*args): raise FakeArgErr() @@ -404,7 +404,7 @@ excinfo = py.test.raises(OperationError, args.parse_obj, "obj", "foo", Signature(["a", "b"], None, None)) assert excinfo.value.w_type is TypeError - assert excinfo.value._w_value == "msg foo" + assert excinfo.value.get_w_value(space) == "foo() msg" def test_args_parsing_into_scope(self): @@ -448,8 +448,8 @@ class FakeArgErr(ArgErr): - def getmsg(self, fname): - return "msg "+fname + def getmsg(self): + return "msg" def _match_signature(*args): raise FakeArgErr() @@ -460,7 +460,7 @@ "obj", [None, None], "foo", Signature(["a", "b"], None, None)) assert excinfo.value.w_type is TypeError - assert excinfo.value._w_value == "msg foo" + assert excinfo.value.get_w_value(space) == "foo() msg" def test_topacked_frompacked(self): space = DummySpace() @@ -493,35 +493,35 @@ # got_nargs, nkwds, expected_nargs, has_vararg, has_kwarg, # defaults_w, missing_args err = ArgErrCount(1, 0, 0, False, False, None, 0) - s = err.getmsg('foo') - assert s == "foo() takes no arguments (1 given)" + s = err.getmsg() + assert s == "takes no arguments (1 given)" err = ArgErrCount(0, 0, 1, False, False, [], 1) - s = err.getmsg('foo') - assert s == "foo() takes exactly 1 argument (0 given)" + s = err.getmsg() + assert s == "takes exactly 1 argument (0 given)" err = ArgErrCount(3, 0, 2, False, False, [], 0) - s = err.getmsg('foo') - assert s == "foo() takes exactly 2 arguments (3 given)" + s = err.getmsg() + assert s == "takes exactly 2 arguments (3 given)" err = ArgErrCount(3, 0, 2, False, False, ['a'], 0) - s = err.getmsg('foo') - assert s == "foo() takes at most 2 arguments (3 given)" + s = err.getmsg() + assert s == "takes at most 2 arguments (3 given)" err = ArgErrCount(1, 0, 2, True, False, [], 1) - s = err.getmsg('foo') - assert s == "foo() takes at least 2 arguments (1 given)" + s = err.getmsg() + assert s == "takes at least 2 arguments (1 given)" err = ArgErrCount(0, 1, 2, True, False, ['a'], 1) - s = err.getmsg('foo') - assert s == "foo() takes at least 1 non-keyword argument (0 given)" + s = err.getmsg() + assert s == "takes at least 1 non-keyword argument (0 given)" err = ArgErrCount(2, 1, 1, False, True, [], 0) - s = err.getmsg('foo') - assert s == "foo() takes exactly 1 non-keyword argument (2 given)" + s = err.getmsg() + assert s == "takes exactly 1 non-keyword argument (2 given)" err = ArgErrCount(0, 1, 1, False, True, [], 1) - s = err.getmsg('foo') - assert s == "foo() takes exactly 1 non-keyword argument (0 given)" + s = err.getmsg() + assert s == "takes exactly 1 non-keyword argument (0 given)" err = ArgErrCount(0, 1, 1, True, True, [], 1) - s = err.getmsg('foo') - assert s == "foo() takes at least 1 non-keyword argument (0 given)" + s = err.getmsg() + assert s == "takes at least 1 non-keyword argument (0 given)" err = ArgErrCount(2, 1, 1, False, True, ['a'], 0) - s = err.getmsg('foo') - assert s == "foo() takes at most 1 non-keyword argument (2 given)" + s = err.getmsg() + assert s == "takes at most 1 non-keyword argument (2 given)" def test_bad_type_for_star(self): space = self.space @@ -543,12 +543,12 @@ def test_unknown_keywords(self): space = DummySpace() err = ArgErrUnknownKwds(space, 1, ['a', 'b'], [True, False], None) - s = err.getmsg('foo') - assert s == "foo() got an unexpected keyword argument 'b'" + s = err.getmsg() + assert s == "got an unexpected keyword argument 'b'" err = ArgErrUnknownKwds(space, 2, ['a', 'b', 'c'], [True, False, False], None) - s = err.getmsg('foo') - assert s == "foo() got 2 unexpected keyword arguments" + s = err.getmsg() + assert s == "got 2 unexpected keyword arguments" def test_unknown_unicode_keyword(self): class DummySpaceUnicode(DummySpace): @@ -558,13 +558,13 @@ err = ArgErrUnknownKwds(space, 1, ['a', None, 'b', 'c'], [True, False, True, True], [unichr(0x1234), u'b', u'c']) - s = err.getmsg('foo') - assert s == "foo() got an unexpected keyword argument '\xe1\x88\xb4'" + s = err.getmsg() + assert s == "got an unexpected keyword argument '\xe1\x88\xb4'" def test_multiple_values(self): err = ArgErrMultipleValues('bla') - s = err.getmsg('foo') - assert s == "foo() got multiple values for keyword argument 'bla'" + s = err.getmsg() + assert s == "got multiple values for keyword argument 'bla'" class AppTestArgument: def test_error_message(self): _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit