Skip to content

Commit

Permalink
Do not process FileNotFoundError in FileResponse, resolves #979
Browse files Browse the repository at this point in the history
FileNotFoundError can be processed in exception_handlers
  • Loading branch information
toxadx committed Jan 29, 2025
1 parent cbddcaf commit 6110ddd
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 3 deletions.
2 changes: 1 addition & 1 deletion starlette/responses.py
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,7 @@ async def __call__(self, scope: Scope, receive: Receive, send: Send) -> None:
stat_result = await anyio.to_thread.run_sync(os.stat, self.path)
self.set_stat_headers(stat_result)
except FileNotFoundError:
raise RuntimeError(f"File at path {self.path} does not exist.")
pass
else:
mode = stat_result.st_mode
if not stat.S_ISREG(mode):
Expand Down
3 changes: 1 addition & 2 deletions tests/test_responses.py
Original file line number Diff line number Diff line change
Expand Up @@ -299,9 +299,8 @@ def test_file_response_with_missing_file_raises_error(tmp_path: Path, test_clien
path = tmp_path / "404.txt"
app = FileResponse(path=path, filename="404.txt")
client = test_client_factory(app)
with pytest.raises(RuntimeError) as exc_info:
with pytest.raises(FileNotFoundError) as exc_info:
client.get("/")
assert "does not exist" in str(exc_info.value)


def test_file_response_with_chinese_filename(tmp_path: Path, test_client_factory: TestClientFactory) -> None:
Expand Down

0 comments on commit 6110ddd

Please sign in to comment.