Commit c78598d3129a125fce64195e1422e6231125e1ae

Authored by Zambom
1 parent f5cddbef

Testando views dos cursos

courses/templates/course/update.html
@@ -18,7 +18,7 @@ @@ -18,7 +18,7 @@
18 <a href="{% url 'app:course:manage_mods' course.slug %}" class="list-group-item"> 18 <a href="{% url 'app:course:manage_mods' course.slug %}" class="list-group-item">
19 {% trans 'Manage Modules' %} 19 {% trans 'Manage Modules' %}
20 </a> 20 </a>
21 - <a href="{% url 'app:participantes_curso' %}" class="list-group-item"> 21 + <a href="#" class="list-group-item">
22 {% trans 'Participants' %} 22 {% trans 'Participants' %}
23 </a> 23 </a>
24 </div> 24 </div>
courses/templates/course/view.html
@@ -27,7 +27,7 @@ @@ -27,7 +27,7 @@
27 <a href="{% url 'app:course:update' course.slug %}" class="list-group-item"> 27 <a href="{% url 'app:course:update' course.slug %}" class="list-group-item">
28 {% trans 'Edit Course' %} 28 {% trans 'Edit Course' %}
29 </a> 29 </a>
30 - <a href="{% url 'app:subscription:participants' course.slug %}" class="list-group-item"> 30 + <a href="#" class="list-group-item">
31 {% trans 'Participants' %} 31 {% trans 'Participants' %}
32 </a> 32 </a>
33 <a href="" class="list-group-item"> 33 <a href="" class="list-group-item">
courses/tests/test_views.py
@@ -3,20 +3,119 @@ @@ -3,20 +3,119 @@
3 from django.test import TestCase, Client 3 from django.test import TestCase, Client
4 from django.core.urlresolvers import reverse 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 class CourseViewTestCase(TestCase): 11 class CourseViewTestCase(TestCase):
7 12
8 def setUp(self): 13 def setUp(self):
9 self.client = Client() 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 self.assertEquals(response.status_code, 200) 35 self.assertEquals(response.status_code, 200)
19 self.assertTemplateUsed(response, 'course/index.html') 36 self.assertTemplateUsed(response, 'course/index.html')
20 37
21 - def test_course_error(self):  
22 - pass  
23 \ No newline at end of file 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 \ No newline at end of file 123 \ No newline at end of file
courses/views.py
@@ -28,7 +28,7 @@ class IndexView(LoginRequiredMixin, generic.ListView): @@ -28,7 +28,7 @@ class IndexView(LoginRequiredMixin, generic.ListView):
28 28
29 return context 29 return context
30 30
31 -class CreateView(HasRoleMixin, LoginRequiredMixin, generic.edit.CreateView): 31 +class CreateView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView):
32 32
33 allowed_roles = ['professor', 'system_admin'] 33 allowed_roles = ['professor', 'system_admin']
34 login_url = '/' 34 login_url = '/'
@@ -49,7 +49,7 @@ class CreateView(HasRoleMixin, LoginRequiredMixin, generic.edit.CreateView): @@ -49,7 +49,7 @@ class CreateView(HasRoleMixin, LoginRequiredMixin, generic.edit.CreateView):
49 49
50 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine) 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 allowed_roles = ['professor', 'system_admin'] 54 allowed_roles = ['professor', 'system_admin']
55 login_url = '/' 55 login_url = '/'
@@ -79,7 +79,7 @@ class View(LoginRequiredMixin, generic.DetailView): @@ -79,7 +79,7 @@ class View(LoginRequiredMixin, generic.DetailView):
79 context_object_name = 'course' 79 context_object_name = 'course'
80 template_name = 'course/view.html' 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 allowed_roles = ['professor', 'system_admin'] 84 allowed_roles = ['professor', 'system_admin']
85 login_url = '/' 85 login_url = '/'
@@ -122,7 +122,7 @@ class IndexCatView(LoginRequiredMixin, generic.ListView): @@ -122,7 +122,7 @@ class IndexCatView(LoginRequiredMixin, generic.ListView):
122 context_object_name = 'categories' 122 context_object_name = 'categories'
123 paginate_by = 3 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 allowed_roles = ['professor', 'system_admin'] 127 allowed_roles = ['professor', 'system_admin']
128 login_url = '/' 128 login_url = '/'
@@ -143,7 +143,7 @@ class CreateCatView(HasRoleMixin, LoginRequiredMixin, generic.edit.CreateView): @@ -143,7 +143,7 @@ class CreateCatView(HasRoleMixin, LoginRequiredMixin, generic.edit.CreateView):
143 143
144 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine) 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 allowed_roles = ['professor', 'system_admin'] 148 allowed_roles = ['professor', 'system_admin']
149 login_url = '/' 149 login_url = '/'
@@ -172,7 +172,7 @@ class ViewCat(LoginRequiredMixin, generic.DetailView): @@ -172,7 +172,7 @@ class ViewCat(LoginRequiredMixin, generic.DetailView):
172 template_name = 'category/view.html' 172 template_name = 'category/view.html'
173 context_object_name = 'category' 173 context_object_name = 'category'
174 174
175 -class DeleteCatView(HasRoleMixin, LoginRequiredMixin, generic.DeleteView): 175 +class DeleteCatView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView):
176 176
177 allowed_roles = ['professor', 'system_admin'] 177 allowed_roles = ['professor', 'system_admin']
178 login_url = '/' 178 login_url = '/'
@@ -205,7 +205,7 @@ class ModulesView(LoginRequiredMixin, generic.ListView): @@ -205,7 +205,7 @@ class ModulesView(LoginRequiredMixin, generic.ListView):
205 205
206 return context 206 return context
207 207
208 -class CreateModView(HasRoleMixin, LoginRequiredMixin, generic.edit.CreateView): 208 +class CreateModView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView):
209 209
210 allowed_roles = ['professor', 'system_admin'] 210 allowed_roles = ['professor', 'system_admin']
211 login_url = '/' 211 login_url = '/'
@@ -238,7 +238,7 @@ class CreateModView(HasRoleMixin, LoginRequiredMixin, generic.edit.CreateView): @@ -238,7 +238,7 @@ class CreateModView(HasRoleMixin, LoginRequiredMixin, generic.edit.CreateView):
238 238
239 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine) 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 allowed_roles = ['professor', 'system_admin'] 243 allowed_roles = ['professor', 'system_admin']
244 login_url = '/' 244 login_url = '/'
@@ -269,7 +269,7 @@ class UpdateModView(HasRoleMixin, LoginRequiredMixin, generic.UpdateView): @@ -269,7 +269,7 @@ class UpdateModView(HasRoleMixin, LoginRequiredMixin, generic.UpdateView):
269 269
270 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine) 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 allowed_roles = ['professor', 'system_admin'] 274 allowed_roles = ['professor', 'system_admin']
275 login_url = '/' 275 login_url = '/'