Ich will gerade einen ersten Pytest ausführen und zwar soll auf eine ungültige Datei beim Dateiöffnen geprüft werden.
Normalerweise wird die FileNotFoundError-Exception geworfen, aber der Test schlägt trotzdem fehl.
Ich würde gern verstehen, warum es nicht geht (unten ist die Ausgabe).
Vielen Dank schonmal für Tipps!
Programm code:
file_handler.py
Code: Alles auswählen
class Filehandler():
def __init__(self):
pass
def read_file(filename_str):
lines = []
try:
with open(filename_str, 'r', encoding="utf8") as f_in:
lines = f_in.readlines()
except FileNotFoundError:
pass
Pytest code:
Code: Alles auswählen
import pytest
from file_handler import Filehandler
def test_file_handler_0():
with pytest.raises(FileNotFoundError):
Filehandler.read_file("invalid_file.x")
Die Ausgabe ist dann :
plugins: html-2.0.1, metadata-1.8.0
collected 1 item
test_file_handler.py F [100%]
============================================================================================== FAILURES ===============================================================================================
___________________________________________________________________________________________ test_file_handler_0 ____________________________________________________________________________________________
def test_file_handler_0():
with pytest.raises(FileNotFoundError):
> Filehandler.read_file("invalid_file.x")
E Failed: DID NOT RAISE <class 'FileNotFoundError'>
test_file_handler.py:19: Failed
---------------------------------------------------------------------------------------- Captured stdout call -----------------------------------------------------------------------------------------
------------------------------------------------------------------ generated html file: file://C:\py\report_test_file_handler.html ------------------------------------------------------------------
========================================================================================== 1 failed in 0.06s ==========================================================================================