Unit testing - return HttpResponseRedirect('/accounts/loggedin')

32 views
Skip to first unread message

Pepsodent Cola

unread,
Jul 4, 2014, 12:04:21 PM7/4/14
to django...@googlegroups.com
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.py

def 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)
#_______________________________________________________________________________



Reply all
Reply to author
Forward
0 new messages