2017-11-24 17 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) 

그래서 시험은 내가 원하는 방식으로 작동하고,하지만 난 여분의 지팡이 형식 오류에 어떻게 대처합니까?

+0

최신 완드 버전을 사용하고 있습니다. 심지어 다른 버전, 같은 문제를 시도했다. – Jayce444

+1

내가 언급 한 github 문제를 살펴보고 제안 된 패치가 병합되지 않았으므로 수동으로 적용해야합니다. – georgexsh

+0

그래,이 패치로 문제가 해결되었습니다. 답을 오른쪽으로 표시하겠습니다. – Jayce444

답변

1

그 메시지는 __del__ 내부에서 제기 예외, doc says 나타냅니다 인해 위태로운 상황에

을하는 아래 () 메소드가 자신의 실행 중에 발생하는 예외는 무시되고, 호출 및 경고가 있습니다 대신 sys.stderr에 인쇄됩니다. ...

아마도 파이썬 인터프리터가 종료 될 때 이런 일이 일어 났을 것입니다. 필자는이 메시지를 pytest로 음소거 할 수있는 간단한 방법이 없다고 생각합니다.

그러나 추적의 라인 번호로, 당신이 지팡이의 버그 버전을 사용하고있는 것 같아요, 누군가 reported a similar issue on github, 당신은 업그레이 드를 시도하고 거기에 문제를보고 할 수 있습니다.