Commit c78598d3129a125fce64195e1422e6231125e1ae
1 parent
f5cddbef
Exists in
master
and in
5 other branches
Testando views dos cursos
Showing
4 changed files
with
117 additions
and
18 deletions
Show diff stats
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 = '/' |