This commit is contained in:
Martin Pépin 2017-07-23 19:57:18 +01:00
parent 75bfe98006
commit ac4dc0c192
2 changed files with 51 additions and 6 deletions

View file

@ -1,6 +1,5 @@
from django.contrib.auth.models import Group, Permission, User from django.contrib.auth.models import Group, Permission, User
from django.contrib.contenttypes.models import ContentType from django.test import TestCase, Client
from django.test import TestCase
from cof.models import CofProfile from cof.models import CofProfile
@ -12,11 +11,41 @@ def create_cofprofile(username):
return CofProfile.objects.create(profile=p) return CofProfile.objects.create(profile=p)
class TestCofProfile(TestCase): def create_buro(username, password=None):
buro_group = Group.objects.get(name="cof_buro")
members_group = Group.objects.get(name="cof_members")
u = User.objects.create_user(username=username, password=password)
u.groups.add(buro_group, members_group)
return u
class PatchPerms:
"""
Setup permissions since there are not set correctly after the migrations.
Issue fixed by commit b68590ffd7
"""
@classmethod
def setUpTestData(cls):
print("PatchPerms: remove me!")
buro_group = Group.objects.get(name="cof_buro")
members_group = Group.objects.get(name="cof_members")
member_p = Permission.objects.get(
content_type__app_label="cof",
codename="member"
)
buro_p = Permission.objects.get(
content_type__app_label="cof",
codename="buro"
)
buro_group.permissions.add(buro_p)
members_group.permissions.add(member_p)
class TestCofProfile(PatchPerms, TestCase):
def test_str(self): def test_str(self):
cofp = create_cofprofile('foo') cofp = create_cofprofile('foo')
# XXX. should by default new CofProfiles be COF members?
self.assertFalse(cofp.profile.user.has_perm('cof.member')) self.assertFalse(cofp.profile.user.has_perm('cof.member'))
# adding/removing a user from the group should impact the # adding/removing a user from the group should impact the
# permission # permission
group = Group.objects.get(name='cof_members') group = Group.objects.get(name='cof_members')
@ -25,3 +54,21 @@ class TestCofProfile(TestCase):
cofp = CofProfile.objects.first() cofp = CofProfile.objects.first()
self.assertTrue(cofp.profile.user.has_perm('cof.member')) self.assertTrue(cofp.profile.user.has_perm('cof.member'))
class TestRegistration(PatchPerms, TestCase):
def setUp(self):
self.buro = create_buro("foo", password="foofoo")
self.other = User.objects.create(username="bar")
def test_get_view(self):
client = Client()
client.login(username="foo", password="foofoo")
urls = [
"/cof/registration",
"/cof/registration/form/",
"/cof/registration/form/bar?user_type=normal",
"/cof/registration/form/baz?user_type=clipper",
]
for url in urls:
self.assertEqual(200, client.get(url).status_code)

View file

@ -153,10 +153,8 @@ class RegistrationView(TemplateView):
self.user = get_object_or_404(User, username=username) self.user = get_object_or_404(User, username=username)
context = self.get_context_data() context = self.get_context_data()
print(vars(self))
return super().render_to_response(context) return super().render_to_response(context)
# def post(self, request, username):
def post(self, request): def post(self, request):
# the `user_exists` POST parameter indicates that we should expect the # the `user_exists` POST parameter indicates that we should expect the
# user to be in the database already. Otherwise we return a 404 page. # user to be in the database already. Otherwise we return a 404 page.