[pypy-commit] pypy py3.3: fixing _csv lineterminator exception message
numerodix
noreply at buildbot.pypy.org
Sat Jul 26 13:02:25 CEST 2014
Author: Martin Matusiak <numerodix at gmail.com>
Branch: py3.3
Changeset: r72494:cbfe89ead8c2
Date: 2014-07-26 12:12 +0200
http://bitbucket.org/pypy/pypy/changeset/cbfe89ead8c2/
Log: fixing _csv lineterminator exception message
diff --git a/pypy/module/_csv/interp_csv.py b/pypy/module/_csv/interp_csv.py
--- a/pypy/module/_csv/interp_csv.py
+++ b/pypy/module/_csv/interp_csv.py
@@ -34,10 +34,15 @@
return default
return space.int_w(w_src)
-def _get_str(space, w_src, default):
+def _get_str(space, w_src, default, attrname):
if w_src is None:
return default
- return space.unicode_w(w_src)
+ try:
+ return space.unicode_w(w_src)
+ except OperationError as e:
+ if e.match(space, space.w_TypeError):
+ raise oefmt(space.w_TypeError, '"%s" must be a string', attrname)
+ raise
def _get_char(space, w_src, default, name):
if w_src is None:
@@ -91,7 +96,7 @@
dialect.delimiter = _get_char(space, w_delimiter, u',', 'delimiter')
dialect.doublequote = _get_bool(space, w_doublequote, True)
dialect.escapechar = _get_char(space, w_escapechar, u'\0', 'escapechar')
- dialect.lineterminator = _get_str(space, w_lineterminator, u'\r\n')
+ dialect.lineterminator = _get_str(space, w_lineterminator, u'\r\n', 'lineterminator')
dialect.quotechar = _get_char(space, w_quotechar, u'"', 'quotechar')
tmp_quoting = _get_int(space, w_quoting, QUOTE_MINIMAL)
dialect.skipinitialspace = _get_bool(space, w_skipinitialspace, False)
diff --git a/pypy/module/_csv/test/test_dialect.py b/pypy/module/_csv/test/test_dialect.py
--- a/pypy/module/_csv/test/test_dialect.py
+++ b/pypy/module/_csv/test/test_dialect.py
@@ -67,6 +67,9 @@
kwargs = {name: value}
raises(TypeError, _csv.register_dialect, 'foo1', **kwargs)
+ exc_info = raises(TypeError, _csv.register_dialect, 'foo1', lineterminator=4)
+ assert exc_info.value.args[0] == '"lineterminator" must be a string'
+
def test_bool_arg(self):
# boolean arguments take *any* object and use its truth-value
import _csv
More information about the pypy-commit
mailing list