Commit a3fa7886239e96d62c37c4f58be9c6be59a0f27e

Authored by Jailson Dias
1 parent 11b3072e

Teste de deletar enquete #79, #114

poll/permissions.py
@@ -10,3 +10,13 @@ def edit_poll(role, user, poll): @@ -10,3 +10,13 @@ def edit_poll(role, user, poll):
10 return True 10 return True
11 11
12 return False 12 return False
  13 +
  14 +@register_object_checker()
  15 +def delete_poll(role, user, poll):
  16 + if (role == SystemAdmin):
  17 + return True
  18 +
  19 + if (user in poll.topic.subject.professors.all()):
  20 + return True
  21 +
  22 + return False
poll/tests/poll.py
@@ -113,6 +113,19 @@ class PollTestCase(TestCase): @@ -113,6 +113,19 @@ class PollTestCase(TestCase):
113 "limit_date":'2016-11-06', 113 "limit_date":'2016-11-06',
114 "all_students":True, 114 "all_students":True,
115 } 115 }
  116 + self.client.login(username='student', password='testing')
116 self.assertNotEqual(poll_student, self.topic.activities.all()[self.topic.activities.all().count() - 1].name) # old name 117 self.assertNotEqual(poll_student, self.topic.activities.all()[self.topic.activities.all().count() - 1].name) # old name
117 response = self.client.post(url, data) 118 response = self.client.post(url, data)
118 - self.assertEqual(poll_student, self.topic.activities.all()[self.topic.activities.all().count() - 1].name) # new name 119 + self.assertNotEqual(poll_student, self.topic.activities.all()[self.topic.activities.all().count() - 1].name) # new name
  120 +
  121 + def test_poll_delete(self):
  122 + url = reverse('course:poll:delete_poll',kwargs={'slug':self.poll.slug})
  123 + self.client.login(username='student', password='testing')
  124 + poll = self.topic.activities.all().count()
  125 + response = self.client.post(url)
  126 + self.assertEqual(poll,self.topic.activities.all().count())
  127 +
  128 + self.client.login(username='professor', password='testing')
  129 + poll = self.topic.activities.all().count()
  130 + response = self.client.post(url)
  131 + self.assertEqual(poll - 1,self.topic.activities.all().count())
@@ -125,7 +125,7 @@ class UpdatePoll(LoginRequiredMixin,HasRoleMixin,generic.UpdateView): @@ -125,7 +125,7 @@ class UpdatePoll(LoginRequiredMixin,HasRoleMixin,generic.UpdateView):
125 125
126 return context 126 return context
127 127
128 -class DeletePoll(LoginRequiredMixin, generic.DeleteView): 128 +class DeletePoll(LoginRequiredMixin, HasRoleMixin, generic.DeleteView):
129 129
130 allowed_roles = ['professor', 'system_admin'] 130 allowed_roles = ['professor', 'system_admin']
131 login_url = reverse_lazy("core:home") 131 login_url = reverse_lazy("core:home")
@@ -133,11 +133,11 @@ class DeletePoll(LoginRequiredMixin, generic.DeleteView): @@ -133,11 +133,11 @@ class DeletePoll(LoginRequiredMixin, generic.DeleteView):
133 model = Poll 133 model = Poll
134 template_name = 'poll/remove.html' 134 template_name = 'poll/remove.html'
135 135
136 - # def dispatch(self, *args, **kwargs):  
137 - # poll = get_object_or_404(Poll, slug = self.kwargs.get('slug'))  
138 - # if(not has_object_permission('delete_subject', self.request.user, subject)):  
139 - # return self.handle_no_permission()  
140 - # return super(DeleteSubjectView, self).dispatch(*args, **kwargs) 136 + def dispatch(self, *args, **kwargs):
  137 + poll = get_object_or_404(Poll, slug = self.kwargs.get('slug'))
  138 + if(not has_object_permission('delete_poll', self.request.user, poll)):
  139 + return self.handle_no_permission()
  140 + return super(DeletePoll, self).dispatch(*args, **kwargs)
141 141
142 142
143 def get_context_data(self, **kwargs): 143 def get_context_data(self, **kwargs):