from unittest.mock import patch SOME_LIST = [1, 2] def ludicrous_len(l): return 7777 patch_len = patch('__main__.len', ludicrous_len) @patch_len def example_return_decorated(): return len(SOME_LIST) @patch_len def example_yield_decorated(): yield len(SOME_LIST) out1 = example_return_decorated() out2 = list(example_yield_decorated()) print() print(out1) # We get 7777, patch has worked. print(out2) # We get [2], patch has not been applied. print() assert out1 == 7777 assert out2 == [2]