10
我有一個方法(run_script
)想測試。具體而言,我想測試是否發生了對subprocess.Popen
的調用。測試subprocess.Popen
時使用某些參數會更好。當我運行測試但是我得到TypeError: 'tuple' object is not callable
。在Python中嘲弄子進程調用
如何測試我的方法以確保子進程實際上是使用mock調用的?
@mock.patch('subprocess.Popen')
def run_script(file_path):
process = subprocess.Popen(['myscript', -M, file_path], stdout=subprocess.PIPE)
output,err = process.communicate()
return process.returncode
def test_run_script(self, mock_subproc_popen):
mock_subproc_popen.return_value = mock.Mock(communicate=('ouput','error'), returncode=0)
am.account_manager("path")
self.assertTrue(mock_subproc_popen.called)