fix tests

This commit is contained in:
Élie Bouttier 2016-07-09 20:29:24 +02:00
parent 03d2ad03ef
commit 0206181158
3 changed files with 16 additions and 12 deletions

View File

@ -61,4 +61,4 @@ class Participation(PonyConfModel):
return self.user.is_superuser or self.orga
def is_staff(self):
return self.is_orga() or self.topic_set.exists()
return self.is_orga() or self.user.topic_set.exists()

View File

@ -16,4 +16,4 @@ def is_staff(request, user):
def can_edit_profile(request, profile):
editor = request.user.participation_set.get(site=get_current_site(request))
return editor.orga or editor.topic_set.filter(talk__speakers=profile.user).exists()
return editor.orga or editor.user.topic_set.filter(talk__speakers=profile.user).exists()

View File

@ -56,21 +56,25 @@ class ProposalsTests(TestCase):
# Talk.is_{editable,moderable}_by
a, b, c = User.objects.all()
self.assertTrue(talk.is_moderable_by(c))
self.assertFalse(talk.is_editable_by(b))
self.assertFalse(talk.is_moderable_by(b))
self.assertTrue(talk.is_editable_by(c)) # c is superuser
self.assertTrue(talk.is_moderable_by(c)) # c is superuser
self.assertFalse(talk.is_editable_by(b)) # b is not speaker
self.assertFalse(talk.is_moderable_by(b)) # b is not orga
self.client.login(username='a', password='a')
self.client.post(reverse('edit-talk', kwargs={'talk': 'super-talk'}),
{'title': 'mega talk', 'description': 'mega', 'event': 1, 'speakers': "2,1"})
self.assertTrue(talk.is_editable_by(b))
self.assertFalse(talk.is_moderable_by(b))
{'title': 'mega talk', 'description': 'mega', 'event': 1, 'speakers': (a.pk, b.pk)})
talk = Talk.objects.get(slug='super-talk')
self.assertTrue(b in talk.speakers.all())
self.assertTrue(talk.is_editable_by(b)) # b is speaker now
self.assertFalse(talk.is_moderable_by(b)) # b is not orga
# Only orga can edit topics
def test_topic_edition_permissions(self):
# Only orga and superuser can edit topics
self.client.login(username='b', password='b')
self.assertFalse(Participation.on_site.get(user=b).orga)
self.assertEqual(self.client.get(reverse('edit-topic', kwargs={'slug': 'topipo'})).status_code, 302)
Participation.on_site.filter(user=b).update(orga=True)
self.assertFalse(Participation.on_site.get(user__username='b').orga)
self.assertEqual(self.client.get(reverse('edit-topic', kwargs={'slug': 'topipo'})).status_code, 302)
Participation.on_site.filter(user__username='b').update(orga=True)
self.assertEqual(self.client.get(reverse('edit-topic', kwargs={'slug': 'topipo'})).status_code, 200)
self.client.login(username='c', password='c') # superuser
self.assertEqual(self.client.get(reverse('edit-topic', kwargs={'slug': 'topipo'})).status_code, 200)
self.assertEqual(self.client.get(reverse('list-topics')).status_code, 200)