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 | 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 = '/' | ... | ... |