0

Djangoでいくつかのフォームのテストを書いています。これらのフォームは頻繁に変更されるため、フォームが変更されるたびにテストも変更する必要があるため、フォームパラメーターをテストにハードコーディングしないようにしています。私はこの性質のかなりの数の形を持っています。私は主に、各フォームフィールドを気にすることなく、情報が正しいテーブルに適切に格納されていることをテストしています。

Django TestClientを使用して、フォームを含むページをフェッチし、ファイルされたデフォルトのフォームフィールド値を使用してポストバックする方法はありますか?

私はこれをグーグルで検索しましたが、役に立ちませんでした。

yはみんなを助けますか?ありがとう。

4

1 に答える 1

1

私は以前にこのようなことをしなければなりませんでした、そして残念ながらそれをする簡単な方法はありません。私が思いついた最善の方法は、フォームをレンダリングしてから、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']
于 2011-09-18T17:34:58.047 に答える