このように動作するユーティリティメソッドがあります
def my_patch_method(self):
pass
def patch_my_lib():
from mylib import MyClass
MyClass.target_method = my_patch_method
return MyClass()
このテストは失敗します:
self.assertEqual(my_patch_method, patch_my_lib().target_method)
これは機能しますが:
self.assertEqual(my_patch_method.__name__, patch_my_lib().target_method.__name__)
パッチメソッドは同じ名前を持っていないので、これはpatch_my_lib()
それが支払われたものを実行していることを証明するものとして受け入れられますが、なぜ最初の機能が期待どおりに機能しないのですか?そして、それを「修正」する方法はありますか?