2017-11-24 25 views
0

Python Wandを使用する関数をテストしています。無効な入力でテストすると、WandライブラリからのカスタムエラーであるBlobErrorがスローされます。しかし、ある時点でWand内で別のTypeErrorが起きていると思われます。その結果、Pytestの結果stdoutの下に大きな醜いException ignored in...エラーメッセージが表示されます。インポートライブラリのミュートPytestライブラリ出力

PytestがBlobErrorを発生させているかどうかを確認していますが、これは問題ありませんが、TypeErrorが発生しているかどうかを確認することはできません。だからここPytestテスト出力です:

================================ test session starts ================================= 
platform linux -- Python 3.5.2, pytest-3.2.5, py-1.5.2, pluggy-0.4.0 
rootdir: /path/to/my/project/tests, inifile: 
collected 1 item                                

test_split.py . 

============================== 1 passed in 0.14 seconds ============================== 
Exception ignored in: <bound method Resource.__del__ of <wand.image.Image: (empty)>> 
Traceback (most recent call last): 
    File "/my/comp/.local/share/virtualenvs/project-BRze6wfl/lib/python3.5/site-packages/wand/resource.py", line 232, in __del__ 
    self.destroy() 
    File "/my/comp/.local/share/virtualenvs/project-BRze6wfl/lib/python3.5/site-packages/wand/image.py", line 2767, in destroy 
    for i in range(0, len(self.sequence)): 
TypeError: object of type 'NoneType' has no len() 

そして、私のテストは単純です:

with pytest.raises(wand.exceptions.BlobError): 
     wand_split.split(PDF,TEMP, 260) 

だからテストは、私が望むように取り組んでいるが、私は、余分なワンドTypeError例外をどのように対処するのですか?

+0

私は最新のワンドバージョンを使用しています。別のバージョン、同じ問題を試しました。 – Jayce444

+1

私が述べたgithubの問題を見て、提案された パッチがマージされていないので、手動で適用する必要があります。 – georgexsh

+0

この問題は修正されました。私は答えを正しいものとしてマークします – Jayce444

答えて

1

すなわちメッセージが__del__doc says内部に発生した例外を示す:

によりデル()メソッドが呼び出されるの下で不安定な状況に、その実行中に発生した例外は無視され、警告があるれています代わりにsys.stderrに出力されます。 ...

おそらく、これはPythonインタプリタが終了したときに起こりました。私の知るところでは、このメッセージをpytestでミュートする簡単な方法はありません。

しかし、トレースバックのライン番号で、あなたはバグのバグのバージョンを使用していると思いますが、誰かがreported a similar issue on githubを持っていると、アップグレードを試みて問題を報告することができます。