from django.conf import settings from django.core.urlresolvers import reverse from django.test.testcases import SimpleTestCase from .fast_dispatch import FastDispatchMixin from users.models import User class SiteNeedsAuthenticationTests(FastDispatchMixin, SimpleTestCase): def test_index_page_cant_be_accessed_when_not_logged_in(self): response = self.fast_dispatch('dashboard') self.assertEqual(settings.LOGIN_URL + '?next=' + reverse('dashboard'), response['Location']) def test_index_page_can_be_accessed_when_logged_in(self): self.user = User() response = self.fast_dispatch('dashboard') response.render() self.assertIn('dashboard', response.content) def test_logout_view_logs_user_out(self): self.user = User() self.fast_dispatch('dashboard') # The user when logged out should be None or AnonymousUser # We check that logout works by getting the user from the logout # request and using it as the user for the next one. response = self.fast_dispatch('logout') self.user = response.view.request.user response = self.fast_dispatch('dashboard') self.assertEqual(settings.LOGIN_URL + '?next=' + reverse('dashboard'), response['Location'])