Тестирование Django на ограничение размера файла
В нашем приложении есть ограничение на размер загружаемого файла (<15MB). Есть ли способ создать фиктивный файл такого размера, чтобы проверить это?
from django.core.files.uploadedfile import InMemoryUploadedFile
import io
f = io.StringIO("some initial text data")
f.seek(1024 * 1024 * 1024)
token_file=InMemoryUploadedFile(file=f , field_name=None, name="file.txt", content_type="text/plain", size=15729641, charset="utf8")
print(token_file.size)
response = self.client.post(HOME_URL, {'entity_level': 1, 'data_type': 1, 'team': GROUP_ID,
'upload_file': token_file}) # data=form_data, format='multipart')
Внутри метода clean класса Form :
def clean_upload_file(self):
uploaded_files = self.files.getlist("upload_file")
print(f"uploaded_files : {uploaded_files}")
total_upload_size = sum([file.size for file in uploaded_files]) / (1024 * 1024)
print(f"total_uploaded_size{total_upload_size}")
if total_upload_size > MAX_UPLOADED_SIZE:
raise forms.ValidationError(f"Total upload size is greater than {MAX_UPLOADED_SIZE} MB")
Выход:
self.files.getlist('upload_file'): [<InMemoryUploadedFile: file.txt (text/plain)>]
uploaded_files : [<InMemoryUploadedFile: file.txt (text/plain)>]
total_uploaded_size0.0
РАЗМЕР ФАЙЛА ПРИ ТАКОМ ПОДХОДЕ ВСЕГДА РАВЕН НУЛЮ ЕСТЬ ЛИ СПОСОБ ПОИЗДЕВАТЬСЯ НАД РАЗМЕРОМ ФАЙЛА?