Отправка формы обратно со значениями по умолчанию в Django TestClient - PullRequest
0 голосов
/ 18 сентября 2011

Я пишу несколько тестов для некоторых форм в Django.Эти формы меняются довольно часто, поэтому я стараюсь избегать жесткого кодирования параметров формы в моих тестах, потому что каждый раз, когда моя форма будет меняться, мне придется также изменять тесты.У меня довольно много форм такого характера.В основном я проверяю, что информация правильно хранится в правильных таблицах, не беспокоясь о каждом поле формы.

Используя Django TestClient, есть ли способ, которым я мог бы получить страницу с формой, а затем отправить ее обратно со значениями поля формы по умолчанию, хранящимися в?

Я прогуглил для этогоно безрезультатно.

А помогите, ребята?Спасибо.

1 Ответ

1 голос
/ 18 сентября 2011

Я должен был сделать что-то подобное раньше, и, к сожалению, нет простого способа сделать это. Лучшее, что я мог придумать, - визуализировать форму, а затем проанализировать результат с BeautifulSoup, чтобы получить все значения входных данных и выбор. Что-то вроде:

from BeautifulSoup import BeautifulSoup
myform = MyForm()
rendered_form = myform.as_p()
soup = BeautifulSoup(rendered_form)
values = {}
for input in soup.findAll('input'):
    value = input.get('value')
    if value:
        values[input['name']] = value
for select in soup.findAll('select'):
    selected = select.find(selected='selected')
    if selected:
        values[select['name']] = selected['value']
...