107 lines
3.7 KiB
Python
107 lines
3.7 KiB
Python
|
import pytest
|
||
|
from fastapi import FastAPI, File, Form, UploadFile
|
||
|
from fastapi.dependencies.utils import (
|
||
|
multipart_incorrect_install_error,
|
||
|
multipart_not_installed_error,
|
||
|
)
|
||
|
|
||
|
|
||
|
def test_incorrect_multipart_installed_form(monkeypatch):
|
||
|
monkeypatch.delattr("multipart.multipart.parse_options_header", raising=False)
|
||
|
with pytest.raises(RuntimeError, match=multipart_incorrect_install_error):
|
||
|
app = FastAPI()
|
||
|
|
||
|
@app.post("/")
|
||
|
async def root(username: str = Form()):
|
||
|
return username # pragma: nocover
|
||
|
|
||
|
|
||
|
def test_incorrect_multipart_installed_file_upload(monkeypatch):
|
||
|
monkeypatch.delattr("multipart.multipart.parse_options_header", raising=False)
|
||
|
with pytest.raises(RuntimeError, match=multipart_incorrect_install_error):
|
||
|
app = FastAPI()
|
||
|
|
||
|
@app.post("/")
|
||
|
async def root(f: UploadFile = File()):
|
||
|
return f # pragma: nocover
|
||
|
|
||
|
|
||
|
def test_incorrect_multipart_installed_file_bytes(monkeypatch):
|
||
|
monkeypatch.delattr("multipart.multipart.parse_options_header", raising=False)
|
||
|
with pytest.raises(RuntimeError, match=multipart_incorrect_install_error):
|
||
|
app = FastAPI()
|
||
|
|
||
|
@app.post("/")
|
||
|
async def root(f: bytes = File()):
|
||
|
return f # pragma: nocover
|
||
|
|
||
|
|
||
|
def test_incorrect_multipart_installed_multi_form(monkeypatch):
|
||
|
monkeypatch.delattr("multipart.multipart.parse_options_header", raising=False)
|
||
|
with pytest.raises(RuntimeError, match=multipart_incorrect_install_error):
|
||
|
app = FastAPI()
|
||
|
|
||
|
@app.post("/")
|
||
|
async def root(username: str = Form(), password: str = Form()):
|
||
|
return username # pragma: nocover
|
||
|
|
||
|
|
||
|
def test_incorrect_multipart_installed_form_file(monkeypatch):
|
||
|
monkeypatch.delattr("multipart.multipart.parse_options_header", raising=False)
|
||
|
with pytest.raises(RuntimeError, match=multipart_incorrect_install_error):
|
||
|
app = FastAPI()
|
||
|
|
||
|
@app.post("/")
|
||
|
async def root(username: str = Form(), f: UploadFile = File()):
|
||
|
return username # pragma: nocover
|
||
|
|
||
|
|
||
|
def test_no_multipart_installed(monkeypatch):
|
||
|
monkeypatch.delattr("multipart.__version__", raising=False)
|
||
|
with pytest.raises(RuntimeError, match=multipart_not_installed_error):
|
||
|
app = FastAPI()
|
||
|
|
||
|
@app.post("/")
|
||
|
async def root(username: str = Form()):
|
||
|
return username # pragma: nocover
|
||
|
|
||
|
|
||
|
def test_no_multipart_installed_file(monkeypatch):
|
||
|
monkeypatch.delattr("multipart.__version__", raising=False)
|
||
|
with pytest.raises(RuntimeError, match=multipart_not_installed_error):
|
||
|
app = FastAPI()
|
||
|
|
||
|
@app.post("/")
|
||
|
async def root(f: UploadFile = File()):
|
||
|
return f # pragma: nocover
|
||
|
|
||
|
|
||
|
def test_no_multipart_installed_file_bytes(monkeypatch):
|
||
|
monkeypatch.delattr("multipart.__version__", raising=False)
|
||
|
with pytest.raises(RuntimeError, match=multipart_not_installed_error):
|
||
|
app = FastAPI()
|
||
|
|
||
|
@app.post("/")
|
||
|
async def root(f: bytes = File()):
|
||
|
return f # pragma: nocover
|
||
|
|
||
|
|
||
|
def test_no_multipart_installed_multi_form(monkeypatch):
|
||
|
monkeypatch.delattr("multipart.__version__", raising=False)
|
||
|
with pytest.raises(RuntimeError, match=multipart_not_installed_error):
|
||
|
app = FastAPI()
|
||
|
|
||
|
@app.post("/")
|
||
|
async def root(username: str = Form(), password: str = Form()):
|
||
|
return username # pragma: nocover
|
||
|
|
||
|
|
||
|
def test_no_multipart_installed_form_file(monkeypatch):
|
||
|
monkeypatch.delattr("multipart.__version__", raising=False)
|
||
|
with pytest.raises(RuntimeError, match=multipart_not_installed_error):
|
||
|
app = FastAPI()
|
||
|
|
||
|
@app.post("/")
|
||
|
async def root(username: str = Form(), f: UploadFile = File()):
|
||
|
return username # pragma: nocover
|