Skip to content
Snippets Groups Projects
Commit 8486af9e authored by Todd Dembrey's avatar Todd Dembrey
Browse files

Add tests to cover the new profile usecases

parent d8afca69
No related branches found
No related tags found
No related merge requests found
...@@ -20,6 +20,7 @@ class UserFactory(factory.DjangoModelFactory): ...@@ -20,6 +20,7 @@ class UserFactory(factory.DjangoModelFactory):
email = factory.Sequence('email{}@email.com'.format) email = factory.Sequence('email{}@email.com'.format)
full_name = factory.Faker('name') full_name = factory.Faker('name')
password = factory.PostGenerationMethodCall('set_password', 'defaultpassword')
@factory.post_generation @factory.post_generation
def groups(self, create, extracted, **kwargs): def groups(self, create, extracted, **kwargs):
...@@ -32,6 +33,10 @@ class UserFactory(factory.DjangoModelFactory): ...@@ -32,6 +33,10 @@ class UserFactory(factory.DjangoModelFactory):
self.groups.add(groups) self.groups.add(groups)
class OAuthUserFactory(UserFactory):
password = factory.PostGenerationMethodCall('set_unusable_password')
class AdminFactory(UserFactory): class AdminFactory(UserFactory):
is_admin = True is_admin = True
......
from django.test import TestCase
from django.urls import reverse
from .factories import OAuthUserFactory, UserFactory
class TestProfileView(TestCase):
def setUp(self):
self.user = UserFactory()
self.url = reverse('users:account')
def test_cant_acces_if_not_logged_in(self):
response = self.client.get(self.url)
self.assertRedirects(response, reverse('users:login') + '?next=' + self.url)
def test_includes_change_password(self):
self.client.force_login(self.user)
response = self.client.get(self.url)
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)
self.assertNotContains(response, reverse('users:password_change'))
def test_email_unique(self):
other_user = UserFactory()
self.client.post(self.url, data={'email': other_user.email})
self.user.refresh_from_db()
self.assertNotEqual(self.user.email, other_user.email)
def test_can_change_email(self):
new_email = 'me@another.com'
self.client.force_login(self.user)
self.client.post(self.url, data={'email': new_email})
self.user.refresh_from_db()
self.assertEqual(self.user.email, new_email)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment