Hi coverage has highlighted that I have no unit test for the line, regarding
HttpResponseRedirect('/accounts/loggedin').
How can I write a test that makes Coverage happy regarding this?
views.pydef auth_view(request):
username = request.POST.get('username', '')
password = request.POST.get('password', '')
user = auth.authenticate(username=username, password=password)
if user is not None:
auth.login(request, user)
return HttpResponseRedirect('/accounts/loggedin') else:
return HttpResponseRedirect('/accounts/invalid')
#_______________________________________________________________________________
def loggedin(request):
return render_to_response('loggedin.html',
{'full_name': request.user.username})
#_______________________________________________________________________________
def invalid_login(request):
return render_to_response('invalid_login.html')
#_______________________________________________________________________________
url.py # user auth urls
url(r'^accounts/login/$', 'navi.views.login'),
url(r'^accounts/auth/$', 'navi.views.
auth_view'),
url(r'^accounts/logout/$', 'navi.views.logout'),
url(r'^accounts/loggedin/$', 'navi.views.loggedin'),
url(r'^accounts/invalid/$', 'navi.views.invalid_login'),
test.py###############
# Forms
###############
class FormTest(TestCase):
# Create User
def setUp(self):
self.user = User.objects.create_user(username='captain', password='america')
# Logged in
def test_Logged_in(self):
self.assertTrue(isinstance(self.user, User))
login = self.client.login(username='captain', password='america')
self.assertEqual(login, True)
resp = self.client.get('/accounts/profile/')
# resp = self.client.get(reverse('userprofile:user_profile'))
self.assertEqual(resp.status_code, 200)
# resp =
self.client.post('/accounts/profile/', {'username':'captain', 'password':'america'}, follow=True)
resp =
self.client.post('/accounts/profile/', follow=True)
self.assertEqual(resp.status_code, 200)
resp = self.client.get('/accounts/fakepage/')
resp = self.client.get('/accounts/loggedin/')
# Invalid login
def test_Invalid_login(self):
resp = self.client.get('/accounts/profile/', follow=True)
self.assertEqual(resp.status_code, 200)
self.assertRedirects(resp, '/accounts/login/?next=/accounts/profile/')
self.assertTrue(isinstance(self.user, User))
login = self.client.login(username='captain', password='america')
self.assertEqual(login, True)
resp = self.client.get(reverse('userprofile:user_profile'), follow=True)
self.assertEqual(resp.status_code, 200)
# resp =
self.client.post('/accounts/profile/', {'username':'captain', 'password':'america'}, follow=True)
resp =
self.client.post('/accounts/profile/', follow=True)
self.assertEqual(resp.status_code, 200)
class AuthTest(TestCase):
def test_auth_view(self):
resp = self.client.get('/accounts/auth/', follow=True)
self.assertEqual(resp.status_code, 200)
self.assertRedirects(resp, '/accounts/invalid/')
def test_loggedin(self):
resp =
self.client.post('/accounts/loggedin/')
self.assertEqual(resp.status_code, 200)
def test_logout(self):
resp = self.client.get('/accounts/logout/')
self.assertEqual(resp.status_code, 200)
#_______________________________________________________________________________