我正在编写一个测试类来测试我的注册视图。我已经测试过get
方法,但是post
似乎给出了错误。请帮助我:
这是我的 tests.py :
class ViewsTest(TestCase):
def setUp(self):
self.client = Client()
def test_register(self):
url = reverse('register')
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
response = self.client.post('/',
{
'first_name': 'john',
'last_name': 'doe',
'email': 'johndoe@gmail.com',
'password': 'johndoe'
})
self.assertEqual(response.status_code, 302)
这是我的 urls.py :
url(r'^register/', views.register, name='register'),
这是我的 views.py :
def register(request):
if request.method == 'POST':
user_form = CustomUserCreationForm(data=request.POST)
if user_form.is_valid():
ob = CustomUserCreationForm.register(user_form)
if ob.is_active is False and ob.is_staff is False:
return render(request, 'todoapp/waiting.html')
else:
return render(request, 'todoapp/admin_success.html')
else:
return render(request, 'todoapp/register.html', {'errors': user_form.errors})
return render(request, 'todoapp/register.html', {'form': CustomUserCreationForm()})
这是我得到的错误:
self.assertEqual(response.status_code, 302)
AssertionError: 404 != 302
答案 0 :(得分:1)
在这里您应该传递url
而不是'/'客户端无法找到该网址,因此返回404
response = self.client.post(url,
{
'first_name': 'john',
'last_name': 'doe',
'email': 'johndoe@gmail.com',
'password': 'johndoe'
})