From c09c0f396154769fbb158135149ff16780973260 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20Hovm=C3=B6ller?= Date: Fri, 25 Oct 2024 12:01:56 +0200 Subject: [PATCH] Fix for generator mutation --- mutmut/__main__.py | 4 ++-- tests/test_mutmut3.py | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/mutmut/__main__.py b/mutmut/__main__.py index d3a3f555..42ac2e63 100644 --- a/mutmut/__main__.py +++ b/mutmut/__main__.py @@ -314,7 +314,7 @@ def build_trampoline(*, orig_name, mutants, class_name, is_generator): access_suffix = '")' if is_generator: - yield_statement = 'yield from' + yield_statement = 'yield from ' # note the space at the end! trampoline_name = '_mutmut_yield_from_trampoline' else: yield_statement = '' @@ -324,7 +324,7 @@ def build_trampoline(*, orig_name, mutants, class_name, is_generator): {mutants_dict} def {orig_name}({'self, ' if class_name is not None else ''}*args, **kwargs): - result = {yield_statement} {trampoline_name}({access_prefix}{mangled_name}__mutmut_orig{access_suffix}, {access_prefix}{mangled_name}__mutmut_mutants{access_suffix}, *args, **kwargs) + result = {yield_statement}{trampoline_name}({access_prefix}{mangled_name}__mutmut_orig{access_suffix}, {access_prefix}{mangled_name}__mutmut_mutants{access_suffix}, *args, **kwargs) return result {orig_name}.__signature__ = _mutmut_signature({mangled_name}__mutmut_orig) diff --git a/tests/test_mutmut3.py b/tests/test_mutmut3.py index c229b01a..3c8ee4b0 100644 --- a/tests/test_mutmut3.py +++ b/tests/test_mutmut3.py @@ -34,7 +34,8 @@ def x_foo__mutmut_2(a, b, c): } def foo(*args, **kwargs): - return _mutmut_trampoline(x_foo__mutmut_orig, x_foo__mutmut_mutants, *args, **kwargs) + result = _mutmut_trampoline(x_foo__mutmut_orig, x_foo__mutmut_mutants, *args, **kwargs) + return result foo.__signature__ = _mutmut_signature(x_foo__mutmut_orig) x_foo__mutmut_orig.__name__ = 'x_foo' @@ -67,7 +68,8 @@ def x_foo__mutmut_1(a: List[int]) -> int: } def foo(*args, **kwargs): - return _mutmut_trampoline(x_foo__mutmut_orig, x_foo__mutmut_mutants, *args, **kwargs) + result = _mutmut_trampoline(x_foo__mutmut_orig, x_foo__mutmut_mutants, *args, **kwargs) + return result foo.__signature__ = _mutmut_signature(x_foo__mutmut_orig) x_foo__mutmut_orig.__name__ = 'x_foo'