Поскольку тестовая среда Django делает это, я не уверен, что вы спрашиваете.
Хотите протестировать приложение Django, имеющее форму?
- В этом случае вам нужно сделать начальный GET
- с последующим результатом POST
Хотите написать (и протестировать) приложение Django, которое отправляет форму на другой сайт?
Вот как мы тестируем приложения Django с формами.
class Test_HTML_Change_User( django.test.TestCase ):
fixtures = [ 'auth.json', 'someApp.json' ]
def test_chg_user_1( self ):
self.client.login( username='this', password='this' )
response= self.client.get( "/support/html/user/2/change/" )
self.assertEquals( 200, response.status_code )
self.assertTemplateUsed( response, "someApp/user.html")
def test_chg_user( self ):
self.client.login( username='this', password='this' )
# The truly fussy would redo the test_chg_user_1 test here
response= self.client.post(
"/support/html/user/2/change/",
{'web_services': 'P',
'username':'olduser',
'first_name':'asdf',
'last_name':'asdf',
'email':'asdf@asdf.com',
'password1':'passw0rd',
'password2':'passw0rd',} )
self.assertRedirects(response, "/support/html/user/2/" )
response= self.client.get( "/support/html/user/2/" )
self.assertContains( response, "<h2>Users: Details for", status_code=200 )
self.assertContains( response, "olduser" )
self.assertTemplateUsed( response, "someApp/user_detail.html")
Примечание - мы не разбираем HTML подробно. Если у него правильный шаблон и правильная строка ответа, он должен быть правильным.