Skip to content
Snippets Groups Projects
test_views.py 1.69 KiB
Newer Older
  • Learn to ignore specific revisions
  • from django.test import TestCase
    from django.urls import reverse
    
    
    from .factories import OAuthUserFactory, StaffFactory, UserFactory
    
    class BaseTestProfielView(TestCase):
        @classmethod
        def setUpTestData(cls):
            cls.url = reverse('users:account')
    
    
    class TestProfileView(BaseTestProfielView):
        def setUp(self):
            self.user = UserFactory()
            self.client.force_login(self.user)
    
    
        def test_cant_acces_if_not_logged_in(self):
    
            self.client.logout()
    
            response = self.client.get(self.url, follow=True)
            # Initial redirect will be via to https through a 301
            self.assertRedirects(response, reverse('users:login') + '?next=' + self.url, status_code=301)
    
    
        def test_includes_change_password(self):
    
            response = self.client.get(self.url, follow=True)
    
            self.assertContains(response, reverse('users:password_change'))
    
        def test_doesnt_includes_change_password_for_oauth(self):
            self.client.force_login(OAuthUserFactory())
    
            response = self.client.get(self.url, follow=True)
    
            self.assertNotContains(response, reverse('users:password_change'))
    
    
        def test_cant_set_slack_name(self):
    
            response = self.client.get(self.url, follow=True)
    
            self.assertNotContains(response, 'Slack name')
    
    
    
    class TestStaffProfileView(BaseTestProfielView):
        def setUp(self):
            self.staff = StaffFactory()
            self.client.force_login(self.staff)
    
        def test_can_set_slack_name(self):
    
            response = self.client.get(self.url, follow=True)
    
            self.assertContains(response, 'Slack name')
    
    
        def test_can_not_set_email(self):
            response = self.client.get(self.url, follow=True)
            self.assertNotContains(response, 'Email')