Как имитировать multipart/form-data с помощью pytest?Python

Программы на Python
Ответить
Anonymous
 Как имитировать multipart/form-data с помощью pytest?

Сообщение Anonymous »

У меня есть конечная точка POST с fastapi, которая выглядит примерно так. При этом файл Excel преобразуется в фрейм данных pandas.

Код: Выделить всё

@router.post(
"/endpoint/upload_excel",
status_code=status.HTTP_200_OK
)
async def upload_excel(user_excel_file: UploadFile = File(...)):
"""
read user Excel file from multipart/form-data into pd dataframe
"""

user_excel_bytes = await user_excel_file.read()
user_excel_bytes_io = io.BytesIO(user_excel_bytes)
user_lineage = pd.read_excel(user_excel_bytes_io)
Эта функция продолжает манипулировать фреймом данных pandas, например сортировать столбцы, проверять значения NULL и проверять типы данных.
Как я могу протестировать эту функцию с помощью pytest в Python? Я считаю, что мне нужно высмеять multipart/form-data (user_excel_file: UploadFile = File(...)). Я хочу протестировать крайние случаи, такие как перехват нулей или наличие целых чисел там, где должны быть строки, но я не хочу создавать отдельный тестовый файл Excel для каждого случая.
Если бы входными данными для этой функции был кадр данных pandas, я мог бы легко посмеяться над этим! Но как я могу высмеять входные данные Excel?

Подробнее здесь: https://stackoverflow.com/questions/797 ... ith-pytest
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»