numpy.fromfile
mockedを渡そうとしfile
ていますが、次のエラーが発生し続けます。
IOError: !最初の引数は開いているファイルでなければなりません
これは、mock パッケージの「追加の例mock_open
」セクションから取得したものを使用した基本的な例です。
import numpy as np
from mock import MagicMock, patch
file_spec = file
def mock_open(mock=None, data=None):
if mock is None:
mock = MagicMock(spec=file_spec)
handle = MagicMock(spec=file_spec)
handle.write.return_value = None
if data is None:
handle.__enter__.return_value = handle
else:
handle.__enter__.return_value = data
mock.return_value = handle
return mock
if __name__ == "__main__":
m = mock_open()
with patch('__main__.open', m, create=True):
with open('foo', 'rb') as h:
print h.mock_calls
try:
result = np.fromfile(h)
except IOError:
print "io error!"
print h.mock_calls
その結果:
% [call.__enter__()]
% io error!
% [call.__enter__()]
私はただモックすることができましたnumpy.fromfile
、そしてそれはおそらく私がやることになるでしょう。フォローがわかりにくかった
- 上記の例が機能しない理由
- デバッグに問題があるのはなぜですか
fromfile
(pdb.set_trace()
直前に呼び出してにステップfromfile
インすることによりfromfile
。デバッガーは何があっても呼び出しをステップオーバーするようです - ソースコード
fromfile
で見つからない理由。numpy
そのような関数は 、numpy/numarray/functions.py
、numpy/core/records.py
およびnumpy/ma/core.py
にありますが、上記のようなエラーは発生しません。
上記の問題を明確にする助けをいただければ幸いです。numpy
ちなみにバージョン1.6.1を使っています。