diff --git a/opentech/apply/users/tests/test_oauth.py b/opentech/apply/users/tests/test_oauth.py index c38bb0ed0d63a427b03bc38443cea9037d42d1ab..f28391201fd0b01effc56ff322a3e005529a20e5 100644 --- a/opentech/apply/users/tests/test_oauth.py +++ b/opentech/apply/users/tests/test_oauth.py @@ -4,29 +4,37 @@ from django.test import TestCase, override_settings from django.urls import reverse -class TestOAuthAcces(TestCase): +class TestOAuthAccess(TestCase): def test_oauth_page_requires_login(self): """ This checks that /account/oauth requires the user to be logged in """ oauth_page = reverse('users:oauth') - response = self.client.get(oauth_page) - self.assertRedirects(response, reverse('users:login') + '?next=' + oauth_page) + response = self.client.get(oauth_page, follow=True) + self.assertRedirects(response, reverse( + 'users:login') + '?next=' + reverse('users:oauth') , status_code=301, target_status_code=200) @override_settings() def test_oauth_not_set_up(self): del settings.SOCIAL_AUTH_GOOGLE_OAUTH2_WHITELISTED_DOMAINS self.login() - response = self.client.get(reverse('users:oauth')) + response = self.client.get(reverse('users:oauth'), follow=True) self.assertEqual(response.status_code, 403) def test_oauth_user_email_not_whitelisted(self): self.login() - response = self.client.get(reverse('users:oauth')) + response = self.client.get(reverse('users:oauth'), follow=True) self.assertEqual(response.status_code, 403) + @override_settings(SOCIAL_AUTH_GOOGLE_OAUTH2_WHITELISTED_DOMAINS=['email.com']) + def test_oauth_whitelisted_user_can_see_link_to_oauth_settings_page(self): + self.login() + + response = self.client.get(reverse('users:account'), follow=True) + self.assertContains(response, 'Manage OAuth') + @override_settings(SOCIAL_AUTH_GOOGLE_OAUTH2_WHITELISTED_DOMAINS=['email.com']) def test_oauth_whitelisted_user_can_access_oauth_settings_page(self): """ @@ -34,10 +42,7 @@ class TestOAuthAcces(TestCase): """ self.login() - response = self.client.get(reverse('users:account')) - self.assertContains(response, 'Manage OAuth') - - response = self.client.get(reverse('users:oauth')) + response = self.client.get(reverse('users:oauth'), follow=True) self.assertEqual(response.status_code, 200) self.assertContains(response, 'Google OAuth') self.assertNotContains(response, 'Disconnect Google OAuth')