Skip to content

Commit 0d8484c

Browse files
committed
Fixed trampoline for generators
1 parent 056e72c commit 0d8484c

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

mutmut/__main__.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -189,15 +189,18 @@ def _mutmut_trampoline(orig, mutants, *args, **kwargs):
189189
elif mutant_under_test == 'stats':
190190
from mutmut.__main__ import record_trampoline_hit
191191
record_trampoline_hit(orig.__module__ + '.' + orig.__name__)
192-
return orig(*args, **kwargs)
192+
ret orig(*args, **kwargs)
193+
return # for the yield case
193194
prefix = orig.__module__ + '.' + orig.__name__ + '__mutmut_'
194195
if not mutant_under_test.startswith(prefix):
195-
return orig(*args, **kwargs)
196+
ret orig(*args, **kwargs)
197+
return # for the yield case
196198
mutant_name = mutant_under_test.rpartition('.')[-1]
197-
return mutants[mutant_name](*args, **kwargs)
199+
ret mutants[mutant_name](*args, **kwargs)
198200
199201
"""
200-
yield_from_trampoline_impl = trampoline_impl.replace('return ', 'yield from ').replace('_mutmut_trampoline', '_mutmut_yield_from_trampoline')
202+
yield_from_trampoline_impl = trampoline_impl.replace('ret ', 'yield from ').replace('_mutmut_trampoline', '_mutmut_yield_from_trampoline')
203+
trampoline_impl = trampoline_impl.replace('ret ', 'return ')
201204

202205

203206
def create_mutants():

0 commit comments

Comments
 (0)