From 7576b3c7d091c174924f20fcfd81cb73a41b19d9 Mon Sep 17 00:00:00 2001 From: Benjamin Peterson Date: Thu, 14 Jul 2011 11:45:42 -0500 Subject: [PATCH] fix assertion rewriting on calls with a double-star arg --- CHANGELOG | 1 + _pytest/assertion/rewrite.py | 2 +- testing/test_assertrewrite.py | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) 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):