Как протестировать загрузку файла в Django? - PullRequest
0 голосов
/ 27 апреля 2020

Я хочу проверить представление, которое принимает файл .zip в качестве запроса. До сих пор я пробовал это:

def test_upload_zip(self):
    with open('zip_file.zip', 'rb') as file:
        response = self.client.post(reverse(self.url), {'zip_file': file}, format='multipart')

Данные, которые я получаю при просмотре print(request.data):

<QueryDict: {'zip_file': [<InMemoryUploadedFile: zip_file.zip (application/zip)>]}>

Но для моего фактического запроса мне нужны данные в multipart, как это:

<QueryDict: {'zip_file': ['data:application/zip;base64,UEsDBBQAAAAIAK1xmF................AAAA=']}>

В реальном запросе я не отправляю content-type с моего внешнего интерфейса. Когда я пытался поставить content_type='multipart/form-data в моем тесте так:

def test_upload_zip(self):
    with open('zip_file.zip', 'rb') as file:
        response = self.client.post(
            reverse(self.url), {'zip_file': file}, content_type='multipart/form-data'
        )

Я получил эту ошибку:

django.http.multipartparser.MultiPartParserError: Invalid boundary in multipart: None

Что я делаю не так, и как я могу получить желаемое данные в моем request.data?

...