Как правильно передать json словарь с двумя одноименными параметрами в api

Рейтинг: 0Ответов: 1Опубликовано: 16.01.2023

Суть в том, что нужно передавать файлы в параметре files по одному. Сколько файлов прикрепляется, столько раз следует повторить этот параметр

Тест имеет вид

def test_create_video_post_with_2_videos():
    request_post_create = PostController().create_post(files=video_kuplinov, data=post_json_video_foot)
    assert request_post_create['status']['statusCodeValue'] == 200

В методе PostController().create_post находится класс

class PostController(ApiClient):
    def create_post(self, files, data):
        "Метод для работы с "/api/v2/posts/create"
        :param files: принимает на вход файлы видео/картинок
        :param data: может принимать ID игры, на тему которой создается пост, ID предложенной игры,
        на тему которой создается пост, Id пользователя в игре
        "
        s = ApiClient.post(self, api_endpoint=url_create_post, files=files,
                           data=data)
        response_json = s.json()
        return response_json

В параметр files я передаю словарик, который содержит в себе видеофайлы

video_kuplinov = {
    'files': ('kuplinov1.mp4', open('files/kuplinov1.mp4', 'rb'), 'video/mp4'),
    'files': ('kuplinov2.mp4', open('files/kuplinov2.mp4', 'rb'), 'video/mp4')
}

Нужно как то этот словарик обернуть, чтобы тест смог взять параметр files с переданном в нем файле и затем взять второй раз параметр files с переданном в нем втором файле. Результатом будет созданный пост с двумя видеофайлами

Ответы

▲ 0Принят

https://requests.readthedocs.io/en/latest/user/advanced/#post-multiple-multipart-encoded-files

video_kuplinov =  [
    ('files', ('kuplinov1.mp4', open('files/kuplinov1.mp4', 'rb'), 'video/mp4'),
    ('files', ('kuplinov2.mp4', open('files/kuplinov2.mp4', 'rb'), 'video/mp4')
]