diff --git a/core/templates/index.html b/core/templates/index.html index 8fec580..431c5a5 100644 --- a/core/templates/index.html +++ b/core/templates/index.html @@ -36,6 +36,12 @@
+ {% if message %} +
+ {{message}} +
+ + {% endif %}
diff --git a/core/tests.py b/core/tests.py index de8bdc0..4993a78 100644 --- a/core/tests.py +++ b/core/tests.py @@ -1,3 +1,32 @@ -from django.test import TestCase +from django.test import TestCase, Client +from django.core.urlresolvers import reverse +from rolepermissions.shortcuts import assign_role +from users.models import User +# from django.core import mail -# Create your tests here. +class LoginTestCase(TestCase): + + def setUp(self): + self.client = Client() + + self.user = User.objects.create_user(username = 'test', email = 'testing@amadeus.com', is_staff = True, is_active = True, password = 'testing') + assign_role(self.user, 'system_admin') + + self.url = reverse('core:home') + + def test_ok(self): + response = self.client.get(self.url) + self.assertEquals(response.status_code, 200) + self.assertTemplateUsed(response, 'index.html') + data = {'username': 'test', 'password': 'testing'} + response = self.client.post(self.url, data) + self.assertRedirects(response, reverse("app:index")) + + def test_not_ok(self): + response = self.client.get(self.url) + self.assertEquals(response.status_code, 200) + self.assertTemplateUsed(response, 'index.html') + data = {'username': 'test', 'password': 'senhaerrada'} + response = self.client.post(self.url, data) + self.assertTrue('message' in response.context) + self.assertEquals(response.context['message'], "Email ou senha incorretos!") diff --git a/core/views.py b/core/views.py index 97a518b..6492ca4 100644 --- a/core/views.py +++ b/core/views.py @@ -22,15 +22,17 @@ from django.shortcuts import redirect from django.urls import reverse def login(request): + context = {} if request.POST: username = request.POST['username'] password = request.POST['password'] usuario = authenticate(username=username, password=password) - print (dir(usuario)) if usuario is not None: login_user(request, usuario) return redirect(reverse("app:index")) - return render(request,"index.html") + else: + context["message"] = "Email ou senha incorretos!" + return render(request,"index.html",context) # class LoginClass(LoginView): diff --git a/courses/tests/test_views.py b/courses/tests/test_views.py index eb4bf7b..dc77c94 100644 --- a/courses/tests/test_views.py +++ b/courses/tests/test_views.py @@ -12,7 +12,7 @@ class CourseViewTestCase(TestCase): def setUp(self): self.client = Client() - + self.user = User.objects.create_user(username = 'test', email = 'testing@amadeus.com', is_staff = True, is_active = True, password = 'testing') assign_role(self.user, 'system_admin') @@ -27,25 +27,25 @@ class CourseViewTestCase(TestCase): def test_index(self): self.client.login(username='test', password='testing') - - url = reverse('app:course:manage') - + + url = reverse('course:manage') + response = self.client.get(url) self.assertEquals(response.status_code, 200) self.assertTemplateUsed(response, 'course/index.html') def test_index_not_logged(self): - url = reverse('app:course:manage') - + url = reverse('course:manage') + response = self.client.get(url, follow = True) - self.assertRedirects(response, '%s?next=%s' % (reverse('home'), url), 302, 200) + self.assertRedirects(response, '%s?next=%s' % (reverse('core:home'), url), 302, 200) def test_create(self): self.client.login(username='test', password='testing') - url = reverse('app:course:create') + url = reverse('course:create') response = self.client.get(url) @@ -53,11 +53,11 @@ class CourseViewTestCase(TestCase): self.assertTemplateUsed(response, 'course/create.html') def test_create_not_logged(self): - url = reverse('app:course:create') - + url = reverse('course:create') + response = self.client.get(url, follow = True) - self.assertRedirects(response, '%s?next=%s' % (reverse('home'), url), 302, 200) + self.assertRedirects(response, '%s?next=%s' % (reverse('core:home'), url), 302, 200) def test_create_no_permission(self): 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): self.client.login(username='student', password='testing') - url = reverse('app:course:create') - + url = reverse('course:create') + response = self.client.get(url) self.assertEquals(response.status_code, 403) @@ -76,7 +76,7 @@ class CourseViewTestCase(TestCase): def test_update(self): self.client.login(username = 'test', password = 'testing') - url = reverse('app:course:update', kwargs = {'slug': self.course.slug}) + url = reverse('course:update', kwargs = {'slug': self.course.slug}) response = self.client.get(url) @@ -84,11 +84,11 @@ class CourseViewTestCase(TestCase): self.assertTemplateUsed(response, 'course/update.html') def test_update_not_logged(self): - url = reverse('app:course:update', kwargs = {'slug': self.course.slug}) - + url = reverse('course:update', kwargs = {'slug': self.course.slug}) + response = self.client.get(url, follow = True) - self.assertRedirects(response, '%s?next=%s' % (reverse('home'), url), 302, 200) + self.assertRedirects(response, '%s?next=%s' % (reverse('core:home'), url), 302, 200) def test_update_no_permission(self): 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): self.client.login(username='student', password='testing') - url = reverse('app:course:update', kwargs = {'slug': self.course.slug}) - + url = reverse('course:update', kwargs = {'slug': self.course.slug}) + response = self.client.get(url) self.assertEquals(response.status_code, 403) @@ -106,7 +106,7 @@ class CourseViewTestCase(TestCase): def test_view(self): self.client.login(username = 'test', password = 'testing') - url = reverse('app:course:view', kwargs = {'slug': self.course.slug}) + url = reverse('course:view', kwargs = {'slug': self.course.slug}) response = self.client.get(url) @@ -114,8 +114,8 @@ class CourseViewTestCase(TestCase): self.assertTemplateUsed(response, 'course/view.html') def test_update_not_logged(self): - url = reverse('app:course:view', kwargs = {'slug': self.course.slug}) - + url = reverse('course:view', kwargs = {'slug': self.course.slug}) + response = self.client.get(url, follow = True) - self.assertRedirects(response, '%s?next=%s' % (reverse('home'), url), 302, 200) \ No newline at end of file + self.assertRedirects(response, '%s?next=%s' % (reverse('core:home'), url), 302, 200) diff --git a/courses/views.py b/courses/views.py index d52063a..85b4e7d 100644 --- a/courses/views.py +++ b/courses/views.py @@ -15,7 +15,7 @@ from .models import Course, Module, Category class IndexView(LoginRequiredMixin, generic.ListView): - login_url = '/' + login_url = reverse_lazy("core:home") redirect_field_name = 'next' queryset = Course.objects.all() template_name = 'course/index.html' @@ -31,7 +31,7 @@ class IndexView(LoginRequiredMixin, generic.ListView): class CreateView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView): allowed_roles = ['professor', 'system_admin'] - login_url = '/' + login_url = reverse_lazy("core:home") redirect_field_name = 'next' template_name = 'course/create.html' form_class = CourseForm @@ -52,7 +52,7 @@ class CreateView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView): class UpdateView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): allowed_roles = ['professor', 'system_admin'] - login_url = '/' + login_url = reverse_lazy("core:home") redirect_field_name = 'next' template_name = 'course/update.html' model = Course @@ -73,7 +73,7 @@ class UpdateView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): class View(LoginRequiredMixin, generic.DetailView): - login_url = '/' + login_url = reverse_lazy("core:home") redirect_field_name = 'next' model = Course context_object_name = 'course' @@ -82,7 +82,7 @@ class View(LoginRequiredMixin, generic.DetailView): class DeleteView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): allowed_roles = ['professor', 'system_admin'] - login_url = '/' + login_url = reverse_lazy("core:home") redirect_field_name = 'next' model = Course template_name = 'course/delete.html' @@ -95,7 +95,7 @@ class DeleteView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): class FilteredView(LoginRequiredMixin, generic.ListView): - login_url = '/' + login_url = reverse_lazy("core:home") redirect_field_name = 'next' template_name = 'course/filtered.html' context_object_name = 'courses' @@ -115,7 +115,7 @@ class FilteredView(LoginRequiredMixin, generic.ListView): class IndexCatView(LoginRequiredMixin, generic.ListView): - login_url = '/' + login_url = reverse_lazy("core:home") redirect_field_name = 'next' queryset = Category.objects.all() template_name = 'category/index.html' @@ -125,7 +125,7 @@ class IndexCatView(LoginRequiredMixin, generic.ListView): class CreateCatView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView): allowed_roles = ['professor', 'system_admin'] - login_url = '/' + login_url = reverse_lazy("core:home") redirect_field_name = 'next' template_name = 'category/create.html' form_class = CategoryForm @@ -146,7 +146,7 @@ class CreateCatView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView): class UpdateCatView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): allowed_roles = ['professor', 'system_admin'] - login_url = '/' + login_url = reverse_lazy("core:home") redirect_field_name = 'next' template_name = 'category/update.html' model = Category @@ -166,7 +166,7 @@ class UpdateCatView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine) class ViewCat(LoginRequiredMixin, generic.DetailView): - login_url = '/' + login_url = reverse_lazy("core:home") redirect_field_name = 'next' model = Category template_name = 'category/view.html' @@ -175,7 +175,7 @@ class ViewCat(LoginRequiredMixin, generic.DetailView): class DeleteCatView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): allowed_roles = ['professor', 'system_admin'] - login_url = '/' + login_url = reverse_lazy("core:home") redirect_field_name = 'next' model = Category template_name = 'category/delete.html' @@ -188,7 +188,7 @@ class DeleteCatView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): class ModulesView(LoginRequiredMixin, generic.ListView): - login_url = '/' + login_url = reverse_lazy("core:home") redirect_field_name = 'next' template_name = 'module/index.html' context_object_name = 'modules' @@ -208,7 +208,7 @@ class ModulesView(LoginRequiredMixin, generic.ListView): class CreateModView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView): allowed_roles = ['professor', 'system_admin'] - login_url = '/' + login_url = reverse_lazy("core:home") redirect_field_name = 'next' template_name = 'module/create.html' form_class = ModuleForm @@ -241,7 +241,7 @@ class CreateModView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView): class UpdateModView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): allowed_roles = ['professor', 'system_admin'] - login_url = '/' + login_url = reverse_lazy("core:home") redirect_field_name = 'next' template_name = 'module/update.html' model = Module @@ -272,7 +272,7 @@ class UpdateModView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): class DeleteModView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): allowed_roles = ['professor', 'system_admin'] - login_url = '/' + login_url = reverse_lazy("core:home") redirect_field_name = 'next' model = Module template_name = 'module/delete.html' -- libgit2 0.21.2