diff --git a/CHANGELOG b/CHANGELOG index eeb39b211..0b3fafbdc 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,7 @@ Changes between 2.1.0 and 2.1.1.DEV ---------------------------------------------- +- fix assertion rewriting on calls with a ** arg - don't cache rewritten modules if bytecode generation is disabled - fix assertion rewriting in read-only directories - fix issue59: provide system-out/err tags for junitxml output diff --git a/_pytest/assertion/rewrite.py b/_pytest/assertion/rewrite.py index 34e119db6..92b3392b4 100644 --- a/_pytest/assertion/rewrite.py +++ b/_pytest/assertion/rewrite.py @@ -514,7 +514,7 @@ class AssertionRewriter(ast.NodeVisitor): new_star, expl = self.visit(call.starargs) arg_expls.append("*" + expl) if call.kwargs: - new_kwarg, expl = self.visit(call.kwarg) + new_kwarg, expl = self.visit(call.kwargs) arg_expls.append("**" + expl) expl = "%s(%s)" % (func_expl, ', '.join(arg_expls)) new_call = ast.Call(new_func, new_args, new_kwargs, new_star, new_kwarg) diff --git a/testing/test_assertrewrite.py b/testing/test_assertrewrite.py index fc1872102..cde6b9e0b 100644 --- a/testing/test_assertrewrite.py +++ b/testing/test_assertrewrite.py @@ -195,6 +195,10 @@ class TestAssertionRewrite: def f(): assert g(1, 3, g=23) assert getmsg(f, ns) == """assert g(1, 3, g=23)""" + def f(): + x = "a" + assert g(**{x : 2}) + assert getmsg(f, ns) == """assert g(**{'a': 2})""" def test_attribute(self): class X(object):