Commit b4c9363992212812edef36aa8d84c9a45c217a54
1 parent
f116c316
Exists in
master
and in
5 other branches
resolve #4
Showing
5 changed files
with
79 additions
and
42 deletions
Show diff stats
core/templates/index.html
... | ... | @@ -36,6 +36,12 @@ |
36 | 36 | <div class="row "> |
37 | 37 | <div class="col-lg-9 col-lg-offset-2"> |
38 | 38 | <div class="card"> |
39 | + {% if message %} | |
40 | + <div class="alert alert-danger"> | |
41 | + {{message}} | |
42 | + </div> | |
43 | + | |
44 | + {% endif %} | |
39 | 45 | <div class="card-content"> |
40 | 46 | |
41 | 47 | <div class="card-body"> | ... | ... |
core/tests.py
1 | -from django.test import TestCase | |
1 | +from django.test import TestCase, Client | |
2 | +from django.core.urlresolvers import reverse | |
3 | +from rolepermissions.shortcuts import assign_role | |
4 | +from users.models import User | |
5 | +# from django.core import mail | |
2 | 6 | |
3 | -# Create your tests here. | |
7 | +class LoginTestCase(TestCase): | |
8 | + | |
9 | + def setUp(self): | |
10 | + self.client = Client() | |
11 | + | |
12 | + self.user = User.objects.create_user(username = 'test', email = 'testing@amadeus.com', is_staff = True, is_active = True, password = 'testing') | |
13 | + assign_role(self.user, 'system_admin') | |
14 | + | |
15 | + self.url = reverse('core:home') | |
16 | + | |
17 | + def test_ok(self): | |
18 | + response = self.client.get(self.url) | |
19 | + self.assertEquals(response.status_code, 200) | |
20 | + self.assertTemplateUsed(response, 'index.html') | |
21 | + data = {'username': 'test', 'password': 'testing'} | |
22 | + response = self.client.post(self.url, data) | |
23 | + self.assertRedirects(response, reverse("app:index")) | |
24 | + | |
25 | + def test_not_ok(self): | |
26 | + response = self.client.get(self.url) | |
27 | + self.assertEquals(response.status_code, 200) | |
28 | + self.assertTemplateUsed(response, 'index.html') | |
29 | + data = {'username': 'test', 'password': 'senhaerrada'} | |
30 | + response = self.client.post(self.url, data) | |
31 | + self.assertTrue('message' in response.context) | |
32 | + self.assertEquals(response.context['message'], "Email ou senha incorretos!") | ... | ... |
core/views.py
... | ... | @@ -22,15 +22,17 @@ from django.shortcuts import redirect |
22 | 22 | from django.urls import reverse |
23 | 23 | |
24 | 24 | def login(request): |
25 | + context = {} | |
25 | 26 | if request.POST: |
26 | 27 | username = request.POST['username'] |
27 | 28 | password = request.POST['password'] |
28 | 29 | usuario = authenticate(username=username, password=password) |
29 | - print (dir(usuario)) | |
30 | 30 | if usuario is not None: |
31 | 31 | login_user(request, usuario) |
32 | 32 | return redirect(reverse("app:index")) |
33 | - return render(request,"index.html") | |
33 | + else: | |
34 | + context["message"] = "Email ou senha incorretos!" | |
35 | + return render(request,"index.html",context) | |
34 | 36 | |
35 | 37 | |
36 | 38 | # class LoginClass(LoginView): | ... | ... |
courses/tests/test_views.py
... | ... | @@ -12,7 +12,7 @@ class CourseViewTestCase(TestCase): |
12 | 12 | |
13 | 13 | def setUp(self): |
14 | 14 | self.client = Client() |
15 | - | |
15 | + | |
16 | 16 | self.user = User.objects.create_user(username = 'test', email = 'testing@amadeus.com', is_staff = True, is_active = True, password = 'testing') |
17 | 17 | assign_role(self.user, 'system_admin') |
18 | 18 | |
... | ... | @@ -27,25 +27,25 @@ class CourseViewTestCase(TestCase): |
27 | 27 | |
28 | 28 | def test_index(self): |
29 | 29 | self.client.login(username='test', password='testing') |
30 | - | |
31 | - url = reverse('app:course:manage') | |
32 | - | |
30 | + | |
31 | + url = reverse('course:manage') | |
32 | + | |
33 | 33 | response = self.client.get(url) |
34 | 34 | |
35 | 35 | self.assertEquals(response.status_code, 200) |
36 | 36 | self.assertTemplateUsed(response, 'course/index.html') |
37 | 37 | |
38 | 38 | def test_index_not_logged(self): |
39 | - url = reverse('app:course:manage') | |
40 | - | |
39 | + url = reverse('course:manage') | |
40 | + | |
41 | 41 | response = self.client.get(url, follow = True) |
42 | 42 | |
43 | - self.assertRedirects(response, '%s?next=%s' % (reverse('home'), url), 302, 200) | |
43 | + self.assertRedirects(response, '%s?next=%s' % (reverse('core:home'), url), 302, 200) | |
44 | 44 | |
45 | 45 | def test_create(self): |
46 | 46 | self.client.login(username='test', password='testing') |
47 | 47 | |
48 | - url = reverse('app:course:create') | |
48 | + url = reverse('course:create') | |
49 | 49 | |
50 | 50 | response = self.client.get(url) |
51 | 51 | |
... | ... | @@ -53,11 +53,11 @@ class CourseViewTestCase(TestCase): |
53 | 53 | self.assertTemplateUsed(response, 'course/create.html') |
54 | 54 | |
55 | 55 | def test_create_not_logged(self): |
56 | - url = reverse('app:course:create') | |
57 | - | |
56 | + url = reverse('course:create') | |
57 | + | |
58 | 58 | response = self.client.get(url, follow = True) |
59 | 59 | |
60 | - self.assertRedirects(response, '%s?next=%s' % (reverse('home'), url), 302, 200) | |
60 | + self.assertRedirects(response, '%s?next=%s' % (reverse('core:home'), url), 302, 200) | |
61 | 61 | |
62 | 62 | def test_create_no_permission(self): |
63 | 63 | self.user = User.objects.create_user(username = 'student', email = 'student@amadeus.com', type_profile = 2, is_staff = False, is_active = True, password = 'testing') |
... | ... | @@ -66,8 +66,8 @@ class CourseViewTestCase(TestCase): |
66 | 66 | |
67 | 67 | self.client.login(username='student', password='testing') |
68 | 68 | |
69 | - url = reverse('app:course:create') | |
70 | - | |
69 | + url = reverse('course:create') | |
70 | + | |
71 | 71 | response = self.client.get(url) |
72 | 72 | |
73 | 73 | self.assertEquals(response.status_code, 403) |
... | ... | @@ -76,7 +76,7 @@ class CourseViewTestCase(TestCase): |
76 | 76 | def test_update(self): |
77 | 77 | self.client.login(username = 'test', password = 'testing') |
78 | 78 | |
79 | - url = reverse('app:course:update', kwargs = {'slug': self.course.slug}) | |
79 | + url = reverse('course:update', kwargs = {'slug': self.course.slug}) | |
80 | 80 | |
81 | 81 | response = self.client.get(url) |
82 | 82 | |
... | ... | @@ -84,11 +84,11 @@ class CourseViewTestCase(TestCase): |
84 | 84 | self.assertTemplateUsed(response, 'course/update.html') |
85 | 85 | |
86 | 86 | def test_update_not_logged(self): |
87 | - url = reverse('app:course:update', kwargs = {'slug': self.course.slug}) | |
88 | - | |
87 | + url = reverse('course:update', kwargs = {'slug': self.course.slug}) | |
88 | + | |
89 | 89 | response = self.client.get(url, follow = True) |
90 | 90 | |
91 | - self.assertRedirects(response, '%s?next=%s' % (reverse('home'), url), 302, 200) | |
91 | + self.assertRedirects(response, '%s?next=%s' % (reverse('core:home'), url), 302, 200) | |
92 | 92 | |
93 | 93 | def test_update_no_permission(self): |
94 | 94 | self.user = User.objects.create_user(username = 'student', email = 'student@amadeus.com', type_profile = 2, is_staff = False, is_active = True, password = 'testing') |
... | ... | @@ -97,8 +97,8 @@ class CourseViewTestCase(TestCase): |
97 | 97 | |
98 | 98 | self.client.login(username='student', password='testing') |
99 | 99 | |
100 | - url = reverse('app:course:update', kwargs = {'slug': self.course.slug}) | |
101 | - | |
100 | + url = reverse('course:update', kwargs = {'slug': self.course.slug}) | |
101 | + | |
102 | 102 | response = self.client.get(url) |
103 | 103 | |
104 | 104 | self.assertEquals(response.status_code, 403) |
... | ... | @@ -106,7 +106,7 @@ class CourseViewTestCase(TestCase): |
106 | 106 | def test_view(self): |
107 | 107 | self.client.login(username = 'test', password = 'testing') |
108 | 108 | |
109 | - url = reverse('app:course:view', kwargs = {'slug': self.course.slug}) | |
109 | + url = reverse('course:view', kwargs = {'slug': self.course.slug}) | |
110 | 110 | |
111 | 111 | response = self.client.get(url) |
112 | 112 | |
... | ... | @@ -114,8 +114,8 @@ class CourseViewTestCase(TestCase): |
114 | 114 | self.assertTemplateUsed(response, 'course/view.html') |
115 | 115 | |
116 | 116 | def test_update_not_logged(self): |
117 | - url = reverse('app:course:view', kwargs = {'slug': self.course.slug}) | |
118 | - | |
117 | + url = reverse('course:view', kwargs = {'slug': self.course.slug}) | |
118 | + | |
119 | 119 | response = self.client.get(url, follow = True) |
120 | 120 | |
121 | - self.assertRedirects(response, '%s?next=%s' % (reverse('home'), url), 302, 200) | |
122 | 121 | \ No newline at end of file |
122 | + self.assertRedirects(response, '%s?next=%s' % (reverse('core:home'), url), 302, 200) | ... | ... |
courses/views.py
... | ... | @@ -15,7 +15,7 @@ from .models import Course, Module, Category |
15 | 15 | |
16 | 16 | class IndexView(LoginRequiredMixin, generic.ListView): |
17 | 17 | |
18 | - login_url = '/' | |
18 | + login_url = reverse_lazy("core:home") | |
19 | 19 | redirect_field_name = 'next' |
20 | 20 | queryset = Course.objects.all() |
21 | 21 | template_name = 'course/index.html' |
... | ... | @@ -31,7 +31,7 @@ class IndexView(LoginRequiredMixin, generic.ListView): |
31 | 31 | class CreateView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView): |
32 | 32 | |
33 | 33 | allowed_roles = ['professor', 'system_admin'] |
34 | - login_url = '/' | |
34 | + login_url = reverse_lazy("core:home") | |
35 | 35 | redirect_field_name = 'next' |
36 | 36 | template_name = 'course/create.html' |
37 | 37 | form_class = CourseForm |
... | ... | @@ -52,7 +52,7 @@ class CreateView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView): |
52 | 52 | class UpdateView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): |
53 | 53 | |
54 | 54 | allowed_roles = ['professor', 'system_admin'] |
55 | - login_url = '/' | |
55 | + login_url = reverse_lazy("core:home") | |
56 | 56 | redirect_field_name = 'next' |
57 | 57 | template_name = 'course/update.html' |
58 | 58 | model = Course |
... | ... | @@ -73,7 +73,7 @@ class UpdateView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): |
73 | 73 | |
74 | 74 | class View(LoginRequiredMixin, generic.DetailView): |
75 | 75 | |
76 | - login_url = '/' | |
76 | + login_url = reverse_lazy("core:home") | |
77 | 77 | redirect_field_name = 'next' |
78 | 78 | model = Course |
79 | 79 | context_object_name = 'course' |
... | ... | @@ -82,7 +82,7 @@ class View(LoginRequiredMixin, generic.DetailView): |
82 | 82 | class DeleteView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): |
83 | 83 | |
84 | 84 | allowed_roles = ['professor', 'system_admin'] |
85 | - login_url = '/' | |
85 | + login_url = reverse_lazy("core:home") | |
86 | 86 | redirect_field_name = 'next' |
87 | 87 | model = Course |
88 | 88 | template_name = 'course/delete.html' |
... | ... | @@ -95,7 +95,7 @@ class DeleteView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): |
95 | 95 | |
96 | 96 | class FilteredView(LoginRequiredMixin, generic.ListView): |
97 | 97 | |
98 | - login_url = '/' | |
98 | + login_url = reverse_lazy("core:home") | |
99 | 99 | redirect_field_name = 'next' |
100 | 100 | template_name = 'course/filtered.html' |
101 | 101 | context_object_name = 'courses' |
... | ... | @@ -115,7 +115,7 @@ class FilteredView(LoginRequiredMixin, generic.ListView): |
115 | 115 | |
116 | 116 | class IndexCatView(LoginRequiredMixin, generic.ListView): |
117 | 117 | |
118 | - login_url = '/' | |
118 | + login_url = reverse_lazy("core:home") | |
119 | 119 | redirect_field_name = 'next' |
120 | 120 | queryset = Category.objects.all() |
121 | 121 | template_name = 'category/index.html' |
... | ... | @@ -125,7 +125,7 @@ class IndexCatView(LoginRequiredMixin, generic.ListView): |
125 | 125 | class CreateCatView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView): |
126 | 126 | |
127 | 127 | allowed_roles = ['professor', 'system_admin'] |
128 | - login_url = '/' | |
128 | + login_url = reverse_lazy("core:home") | |
129 | 129 | redirect_field_name = 'next' |
130 | 130 | template_name = 'category/create.html' |
131 | 131 | form_class = CategoryForm |
... | ... | @@ -146,7 +146,7 @@ class CreateCatView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView): |
146 | 146 | class UpdateCatView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): |
147 | 147 | |
148 | 148 | allowed_roles = ['professor', 'system_admin'] |
149 | - login_url = '/' | |
149 | + login_url = reverse_lazy("core:home") | |
150 | 150 | redirect_field_name = 'next' |
151 | 151 | template_name = 'category/update.html' |
152 | 152 | model = Category |
... | ... | @@ -166,7 +166,7 @@ class UpdateCatView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): |
166 | 166 | return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine) |
167 | 167 | |
168 | 168 | class ViewCat(LoginRequiredMixin, generic.DetailView): |
169 | - login_url = '/' | |
169 | + login_url = reverse_lazy("core:home") | |
170 | 170 | redirect_field_name = 'next' |
171 | 171 | model = Category |
172 | 172 | template_name = 'category/view.html' |
... | ... | @@ -175,7 +175,7 @@ class ViewCat(LoginRequiredMixin, generic.DetailView): |
175 | 175 | class DeleteCatView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): |
176 | 176 | |
177 | 177 | allowed_roles = ['professor', 'system_admin'] |
178 | - login_url = '/' | |
178 | + login_url = reverse_lazy("core:home") | |
179 | 179 | redirect_field_name = 'next' |
180 | 180 | model = Category |
181 | 181 | template_name = 'category/delete.html' |
... | ... | @@ -188,7 +188,7 @@ class DeleteCatView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): |
188 | 188 | |
189 | 189 | class ModulesView(LoginRequiredMixin, generic.ListView): |
190 | 190 | |
191 | - login_url = '/' | |
191 | + login_url = reverse_lazy("core:home") | |
192 | 192 | redirect_field_name = 'next' |
193 | 193 | template_name = 'module/index.html' |
194 | 194 | context_object_name = 'modules' |
... | ... | @@ -208,7 +208,7 @@ class ModulesView(LoginRequiredMixin, generic.ListView): |
208 | 208 | class CreateModView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView): |
209 | 209 | |
210 | 210 | allowed_roles = ['professor', 'system_admin'] |
211 | - login_url = '/' | |
211 | + login_url = reverse_lazy("core:home") | |
212 | 212 | redirect_field_name = 'next' |
213 | 213 | template_name = 'module/create.html' |
214 | 214 | form_class = ModuleForm |
... | ... | @@ -241,7 +241,7 @@ class CreateModView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView): |
241 | 241 | class UpdateModView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): |
242 | 242 | |
243 | 243 | allowed_roles = ['professor', 'system_admin'] |
244 | - login_url = '/' | |
244 | + login_url = reverse_lazy("core:home") | |
245 | 245 | redirect_field_name = 'next' |
246 | 246 | template_name = 'module/update.html' |
247 | 247 | model = Module |
... | ... | @@ -272,7 +272,7 @@ class UpdateModView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): |
272 | 272 | class DeleteModView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): |
273 | 273 | |
274 | 274 | allowed_roles = ['professor', 'system_admin'] |
275 | - login_url = '/' | |
275 | + login_url = reverse_lazy("core:home") | |
276 | 276 | redirect_field_name = 'next' |
277 | 277 | model = Module |
278 | 278 | template_name = 'module/delete.html' | ... | ... |