Commit b4c9363992212812edef36aa8d84c9a45c217a54

Authored by Jailson Dias
1 parent f116c316

resolve #4

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