Как протестировать две формы django, которые находятся в одном представлении

У меня есть представление, которое обрабатывает две различные формы в одном POST-запросе.

Раньше тестирование было простым, потому что у меня была только одна форма, так что это было бы что-то вроде:

def test_post_success(self):
    response = self.client.post("/books/add/", data={"title": "Dombey and Son"})

    self.assertEqual(response.status_code, HTTPStatus.FOUND)
    self.assertEqual(response["Location"], "/books/")

Если у меня есть вторая форма с 'префиксом', как мне построить объект data для запроса.

Я думаю о:

form_1_data = {foo}
form_2_data = {bar}
response = self.client.post("/books/add/", data={form_1_data, form_2_data)

Но это явно не работает

Вы можете объединять словари с помощью пометки **. Например, так:

>>> data_1 = {"title": "Dombey and Son"}
>>> data_2 = {"character": "Donald Duck"}
>>> {**data_2, **data_1}
{'character': 'Donald Duck', 'title': 'Dombey and Son'}

Помогает ли это вашему делу?

Вернуться на верх