From 9849022eb2421c9e468609cbbbedf63a8a042702 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Wed, 14 Feb 2018 19:20:00 +0100 Subject: [PATCH] Remove "matching '...'" part from the pytest.raises message When a test with pytest.raises(ValueError, match='foo') doesn't raise, the following error is printed: Failed: DID NOT RAISE matching 'foo' This error message is confusing as it implies a ValueError was raised, but the message wasn't matching 'foo'. I first considered rewording it somehow to preserve the match pattern in it, but I don't think that's worthwhile as the pattern should usually be apparent from the stacktrace anyways (hard-coded, as parametrization, or with --showlocals for more sophisticated cases). --- _pytest/python_api.py | 1 - changelog/3222.trivial | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 changelog/3222.trivial diff --git a/_pytest/python_api.py b/_pytest/python_api.py index e6f002849..5bbf3ac7a 100644 --- a/_pytest/python_api.py +++ b/_pytest/python_api.py @@ -571,7 +571,6 @@ def raises(expected_exception, *args, **kwargs): message = kwargs.pop("message") if "match" in kwargs: match_expr = kwargs.pop("match") - message += " matching '{0}'".format(match_expr) return RaisesContext(expected_exception, message, match_expr) elif isinstance(args[0], str): code, = args diff --git a/changelog/3222.trivial b/changelog/3222.trivial new file mode 100644 index 000000000..fbbbd5510 --- /dev/null +++ b/changelog/3222.trivial @@ -0,0 +1 @@ +The "matching '...'" part got removed from ``pytest.raises()`` error messages as it falsely implies that an exception was raised but it didn't match. \ No newline at end of file