Skip to content

Commit

Permalink
Merge pull request #993 from pganssle/parsererror_repr
Browse files Browse the repository at this point in the history
Fix custom repr for ParserError
  • Loading branch information
pganssle committed Jan 2, 2020
2 parents 21fe6e9 + ea7f441 commit 110a09b
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 2 deletions.
1 change: 1 addition & 0 deletions changelog.d/991.bugfix.rst
@@ -0,0 +1 @@
Fixed the custom ``repr`` for ``dateutil.parser.ParserError``, which was not defined due to an indentation error. (gh issue #991, gh pr #993)
5 changes: 3 additions & 2 deletions dateutil/parser/_parser.py
Expand Up @@ -1600,8 +1600,9 @@ def __str__(self):
except (TypeError, IndexError):
return super(ParserError, self).__str__()

def __repr__(self):
return "%s(%s)" % (self.__class__.__name__, str(self))
def __repr__(self):
args = ", ".join("'%s'" % arg for arg in self.args)
return "%s(%s)" % (self.__class__.__name__, args)


class UnknownTimezoneWarning(RuntimeWarning):
Expand Down
9 changes: 9 additions & 0 deletions dateutil/test/test_parser.py
Expand Up @@ -943,3 +943,12 @@ def test_decimal_error(value):
# when constructed with an invalid value
with pytest.raises(ParserError):
parse(value)

def test_parsererror_repr():
# GH 991 — the __repr__ was not properly indented and so was never defined.
# This tests the current behavior of the ParserError __repr__, but the
# precise format is not guaranteed to be stable and may change even in
# minor versions. This test exists to avoid regressions.
s = repr(ParserError("Problem with string: %s", "2019-01-01"))

assert s == "ParserError('Problem with string: %s', '2019-01-01')"

0 comments on commit 110a09b

Please sign in to comment.