Commit c78598d3129a125fce64195e1422e6231125e1ae

Authored by Zambom
1 parent f5cddbef

Testando views dos cursos

courses/templates/course/update.html
... ... @@ -18,7 +18,7 @@
18 18 <a href="{% url 'app:course:manage_mods' course.slug %}" class="list-group-item">
19 19 {% trans 'Manage Modules' %}
20 20 </a>
21   - <a href="{% url 'app:participantes_curso' %}" class="list-group-item">
  21 + <a href="#" class="list-group-item">
22 22 {% trans 'Participants' %}
23 23 </a>
24 24 </div>
... ...
courses/templates/course/view.html
... ... @@ -27,7 +27,7 @@
27 27 <a href="{% url 'app:course:update' course.slug %}" class="list-group-item">
28 28 {% trans 'Edit Course' %}
29 29 </a>
30   - <a href="{% url 'app:subscription:participants' course.slug %}" class="list-group-item">
  30 + <a href="#" class="list-group-item">
31 31 {% trans 'Participants' %}
32 32 </a>
33 33 <a href="" class="list-group-item">
... ...
courses/tests/test_views.py
... ... @@ -3,20 +3,119 @@
3 3 from django.test import TestCase, Client
4 4 from django.core.urlresolvers import reverse
5 5  
  6 +from rolepermissions.shortcuts import assign_role
  7 +
  8 +from courses.models import Course, Category
  9 +from users.models import User
  10 +
6 11 class CourseViewTestCase(TestCase):
7 12  
8 13 def setUp(self):
9 14 self.client = Client()
10   - self.url = reverse('app:course:manage')
  15 +
  16 + self.user = User.objects.create_user(username = 'test', email = 'testing@amadeus.com', is_staff = True, is_active = True, password = 'testing')
  17 + assign_role(self.user, 'system_admin')
  18 +
  19 + category = Category(name = 'Categoria Teste', slug = 'categoria_teste')
  20 + category.save()
11 21  
12   - #def tearDown(self):
13   - # pass
  22 + course = Course(name = 'Curso Teste', slug = 'curso_teste', max_students = 50, init_register_date = '2016-08-26', end_register_date = '2016-10-01', init_date = '2016-10-05', end_date = '2017-10-05', category = category)
  23 + course.save()
14 24  
15   - def test_course_ok(self):
16   - response = self.client.get(self.url)
  25 + self.category = category
  26 + self.course = course
  27 +
  28 + def test_index(self):
  29 + self.client.login(username='test', password='testing')
  30 +
  31 + url = reverse('app:course:manage')
  32 +
  33 + response = self.client.get(url)
17 34  
18 35 self.assertEquals(response.status_code, 200)
19 36 self.assertTemplateUsed(response, 'course/index.html')
20 37  
21   - def test_course_error(self):
22   - pass
23 38 \ No newline at end of file
  39 + def test_index_not_logged(self):
  40 + url = reverse('app:course:manage')
  41 +
  42 + response = self.client.get(url, follow = True)
  43 +
  44 + self.assertRedirects(response, '%s?next=%s' % (reverse('home'), url), 302, 200)
  45 +
  46 + def test_create(self):
  47 + self.client.login(username='test', password='testing')
  48 +
  49 + url = reverse('app:course:create')
  50 +
  51 + response = self.client.get(url)
  52 +
  53 + self.assertEquals(response.status_code, 200)
  54 + self.assertTemplateUsed(response, 'course/create.html')
  55 +
  56 + def test_create_not_logged(self):
  57 + url = reverse('app:course:create')
  58 +
  59 + response = self.client.get(url, follow = True)
  60 +
  61 + self.assertRedirects(response, '%s?next=%s' % (reverse('home'), url), 302, 200)
  62 +
  63 + def test_create_no_permission(self):
  64 + self.user = User.objects.create_user(username = 'student', email = 'student@amadeus.com', type_profile = 2, is_staff = False, is_active = True, password = 'testing')
  65 +
  66 + assign_role(self.user, 'student')
  67 +
  68 + self.client.login(username='student', password='testing')
  69 +
  70 + url = reverse('app:course:create')
  71 +
  72 + response = self.client.get(url)
  73 +
  74 + self.assertEquals(response.status_code, 403)
  75 +
  76 +
  77 + def test_update(self):
  78 + self.client.login(username = 'test', password = 'testing')
  79 +
  80 + url = reverse('app:course:update', kwargs = {'slug': self.course.slug})
  81 +
  82 + response = self.client.get(url)
  83 +
  84 + self.assertEquals(response.status_code, 200)
  85 + self.assertTemplateUsed(response, 'course/update.html')
  86 +
  87 + def test_update_not_logged(self):
  88 + url = reverse('app:course:update', kwargs = {'slug': self.course.slug})
  89 +
  90 + response = self.client.get(url, follow = True)
  91 +
  92 + self.assertRedirects(response, '%s?next=%s' % (reverse('home'), url), 302, 200)
  93 +
  94 + def test_update_no_permission(self):
  95 + self.user = User.objects.create_user(username = 'student', email = 'student@amadeus.com', type_profile = 2, is_staff = False, is_active = True, password = 'testing')
  96 +
  97 + assign_role(self.user, 'student')
  98 +
  99 + self.client.login(username='student', password='testing')
  100 +
  101 + url = reverse('app:course:update', kwargs = {'slug': self.course.slug})
  102 +
  103 + response = self.client.get(url)
  104 +
  105 + self.assertEquals(response.status_code, 403)
  106 +
  107 + def test_view(self):
  108 + self.client.login(username = 'test', password = 'testing')
  109 +
  110 + url = reverse('app:course:view', kwargs = {'slug': self.course.slug})
  111 +
  112 + response = self.client.get(url)
  113 +
  114 + self.assertEquals(response.status_code, 200)
  115 + self.assertTemplateUsed(response, 'course/view.html')
  116 +
  117 + def test_update_not_logged(self):
  118 + url = reverse('app:course:view', kwargs = {'slug': self.course.slug})
  119 +
  120 + response = self.client.get(url, follow = True)
  121 +
  122 + self.assertRedirects(response, '%s?next=%s' % (reverse('home'), url), 302, 200)
24 123 \ No newline at end of file
... ...
courses/views.py
... ... @@ -28,7 +28,7 @@ class IndexView(LoginRequiredMixin, generic.ListView):
28 28  
29 29 return context
30 30  
31   -class CreateView(HasRoleMixin, LoginRequiredMixin, generic.edit.CreateView):
  31 +class CreateView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView):
32 32  
33 33 allowed_roles = ['professor', 'system_admin']
34 34 login_url = '/'
... ... @@ -49,7 +49,7 @@ class CreateView(HasRoleMixin, LoginRequiredMixin, generic.edit.CreateView):
49 49  
50 50 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine)
51 51  
52   -class UpdateView(HasRoleMixin, LoginRequiredMixin, generic.UpdateView):
  52 +class UpdateView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
53 53  
54 54 allowed_roles = ['professor', 'system_admin']
55 55 login_url = '/'
... ... @@ -79,7 +79,7 @@ class View(LoginRequiredMixin, generic.DetailView):
79 79 context_object_name = 'course'
80 80 template_name = 'course/view.html'
81 81  
82   -class DeleteView(HasRoleMixin, LoginRequiredMixin, generic.DeleteView):
  82 +class DeleteView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView):
83 83  
84 84 allowed_roles = ['professor', 'system_admin']
85 85 login_url = '/'
... ... @@ -122,7 +122,7 @@ class IndexCatView(LoginRequiredMixin, generic.ListView):
122 122 context_object_name = 'categories'
123 123 paginate_by = 3
124 124  
125   -class CreateCatView(HasRoleMixin, LoginRequiredMixin, generic.edit.CreateView):
  125 +class CreateCatView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView):
126 126  
127 127 allowed_roles = ['professor', 'system_admin']
128 128 login_url = '/'
... ... @@ -143,7 +143,7 @@ class CreateCatView(HasRoleMixin, LoginRequiredMixin, generic.edit.CreateView):
143 143  
144 144 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine)
145 145  
146   -class UpdateCatView(HasRoleMixin, LoginRequiredMixin, generic.UpdateView):
  146 +class UpdateCatView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
147 147  
148 148 allowed_roles = ['professor', 'system_admin']
149 149 login_url = '/'
... ... @@ -172,7 +172,7 @@ class ViewCat(LoginRequiredMixin, generic.DetailView):
172 172 template_name = 'category/view.html'
173 173 context_object_name = 'category'
174 174  
175   -class DeleteCatView(HasRoleMixin, LoginRequiredMixin, generic.DeleteView):
  175 +class DeleteCatView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView):
176 176  
177 177 allowed_roles = ['professor', 'system_admin']
178 178 login_url = '/'
... ... @@ -205,7 +205,7 @@ class ModulesView(LoginRequiredMixin, generic.ListView):
205 205  
206 206 return context
207 207  
208   -class CreateModView(HasRoleMixin, LoginRequiredMixin, generic.edit.CreateView):
  208 +class CreateModView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView):
209 209  
210 210 allowed_roles = ['professor', 'system_admin']
211 211 login_url = '/'
... ... @@ -238,7 +238,7 @@ class CreateModView(HasRoleMixin, LoginRequiredMixin, generic.edit.CreateView):
238 238  
239 239 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine)
240 240  
241   -class UpdateModView(HasRoleMixin, LoginRequiredMixin, generic.UpdateView):
  241 +class UpdateModView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
242 242  
243 243 allowed_roles = ['professor', 'system_admin']
244 244 login_url = '/'
... ... @@ -269,7 +269,7 @@ class UpdateModView(HasRoleMixin, LoginRequiredMixin, generic.UpdateView):
269 269  
270 270 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine)
271 271  
272   -class DeleteModView(HasRoleMixin, LoginRequiredMixin, generic.DeleteView):
  272 +class DeleteModView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView):
273 273  
274 274 allowed_roles = ['professor', 'system_admin']
275 275 login_url = '/'
... ...