ファイルを読み取り、単体テスト用にすべてのインポートをモックアウトするヘルパー関数を作成しようとしています。Pythonパスにそれらのものがないため、ファイルとインポートを読み取る必要があります。
コード例:
#module.py
import com.stackoverflow.question
from com.stackoverflow.util import test_func
from com.stackoverflow.util import TestClass
#magic helper: what i want
magic = process('<path_to>/module.py')
for module in magic.modules_as_strings():
#todo would have to recuirsively add each path
# so i would first create com, then com.stackoverflow, etc
setattr(self, module, StubModules(module)
for obj in magic.sink:
#these would be "from" from x import Y
#its basically just creating self.Y = object
setattr(self, object)
上記はモックコードです。「from/importステートメント」用にファイルをトークン化する最良の方法を本当に探しています
意味がある?ファイルを1行ずつ読むことができることは知っていますが、よりクリーンで簡潔な方法を望んでいました。
ご不明な点がございましたら、お知らせください。