def test_get_object_returns_logged_in_user(self): ''' Tests the get_object() method which is overridden in ProfileView. Function returns currently logged in user ''' request = self.factory.get('/fake/') request.user = self.user view = ProfileView() view = setup_view(view, request) obj = view.get_object() self.assertEqual(obj, self.user)
def test_post_request_redirects_to_login_if_user_not_logged_in(self): ''' A POST request will be redirected to login screen if user accesses /account_info/profile/ without being logged in. ''' request = self.factory.post('/fake/') request.user = '' response = ProfileView.as_view()(request) self.assertEqual(response.status_code, 302) redirect_url = reverse('authentication:login') + '?next=' + '/fake/' self.assertEqual(response.url, redirect_url)
def test_post_redirects_to_profile_page_if_user_is_logged_in(self): request = self.factory.post('/fake/') # Django bug with messages. Work around provided here: # https://stackoverflow.com/questions/11938164/why-dont-my-django-unittests-know-that-messagemiddleware-is-installed setattr(request, 'session', 'session') messages = FallbackStorage(request) setattr(request, '_messages', messages) request.user = self.user response = ProfileView.as_view()(request) self.assertEqual(response.status_code, 302) self.assertEqual(response.url, reverse('account_info:account_profile'))
def test_view_uses_correct_template(self): request = self.factory.get(reverse('account_info:account_profile')) request.user = self.user response = ProfileView.as_view()(request) self.assertTrue('account_info/profile.html' in response.template_name)
def test_post_redirects_to_profile_page_if_user_is_logged_in(self): request = self.factory.post('/fake/') request.user = self.user response = ProfileView.as_view()(request) self.assertEqual(response.status_code, 302) self.assertEqual(response.url, reverse('account_info:account_profile'))
def test_200_response_from_get_request(self): request = self.factory.get('/fake/') request.user = self.user response = ProfileView.as_view()(request) self.assertEqual(response.status_code, 200)