From ee397529bd89060c97687e107619ea700d0286f2 Mon Sep 17 00:00:00 2001 From: Yaumi <mrcumy@gmail.com> Date: Fri, 9 Oct 2020 23:18:03 +0700 Subject: [PATCH] [RED] membuat test change password --- app/tests.py | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ app/urls.py | 5 ++++- app/views.py | 13 ++++++++++++- 3 files changed, 64 insertions(+), 2 deletions(-) diff --git a/app/tests.py b/app/tests.py index 1dcd63c..c124aa8 100644 --- a/app/tests.py +++ b/app/tests.py @@ -2114,3 +2114,51 @@ class MateriModelTest(TestCase): Like.objects.create(timestamp=datetime.now(), materi=self.materi, session_id="dummysessionid2") self.assertEqual(2, self.materi.like_count) + +class ChangePassword(TestCase): + def setUp(self): + self.client = Client() + self.kontributor = User.objects.create_contributor(email="kontributor@gov.id", password="kontributor") + self.admin = User.objects.create_admin(email="admin@gov.id", password="admin") + self.url = "/change-password/" + self.view = PasswordChangeView + self.template_name = "change-password.html" + + def test_change_password_view(self): + found = resolve(self.url) + self.assertEqual(found.func.__name__, self.view.as_view().__name__) + + def test_change_password_template(self): + # Login + self.client.login(email="kontributor@gov.id", password="kontributor") + # Test + response = self.client.get(self.url) + self.assertTemplateUsed(response, self.template_name) + # Logout + self.client.logout() + + def test_change_password_url(self): + # Login + self.client.login(email="kontributor@gov.id", password="kontributor") + # Test + response = self.client.get(self.url) + self.assertEqual(response.status_code, 200) + # Logout + self.client.logout() + + def test_change_password_access(self): + # Kontributor + # Login + self.client.login(email="kontributor@gov.id", password="kontributor") + # Test + response = self.client.get(self.url) + self.assertEqual(response.status_code, 200) + # Logout + self.client.logout() + + def test_change_password_anonymous(self): + # Test + response = self.client.get(self.url) + self.assertEqual(response.status_code, 403) + + \ No newline at end of file diff --git a/app/urls.py b/app/urls.py index 7ccc70c..3f0cc7d 100644 --- a/app/urls.py +++ b/app/urls.py @@ -5,7 +5,8 @@ from app.views import (DashboardKontributorView, ProfilKontributorView, SuksesLoginAdminView, SuksesLoginKontributorView, DownloadHistoryView, SuntingProfilView, UploadMateriHTML, UploadMateriView, UploadMateriExcelView, ProfilAdminView, PostsView, SuntingProfilAdminView, - ReqMateriView, KatalogPerKontributorView) + ReqMateriView, KatalogPerKontributorView, PasswordChangeView, password_success) +from django.contrib.auth import views as auth_views urlpatterns = [ path("", views.DaftarKatalog.as_view(), name="daftar_katalog"), @@ -34,4 +35,6 @@ urlpatterns = [ name="katalog-per-kontributor"), path("materi/rate/", views.add_rating_materi, name="rate-materi"), path("materi/<int:pk>/save-to-gdrive/", views.save_to_gdrive, name="save-to-gdrive"), + path("change-password/", PasswordChangeView.as_view(template_name='change-password.html')), + path("password_success/", views.password_success, name="password_success"), ] diff --git a/app/views.py b/app/views.py index 4f582ea..c943052 100644 --- a/app/views.py +++ b/app/views.py @@ -35,6 +35,10 @@ from io import BytesIO from pydrive.auth import GoogleAuth from pydrive.drive import GoogleDrive from pydrive.auth import AuthenticationRejected +from django.contrib.auth.views import PasswordChangeForm +from django.urls import reverse_lazy +from django.contrib.auth.views import PasswordChangeView +from django.shortcuts import render def permission_denied(request, exception, template_name="error_403.html"): @@ -854,4 +858,11 @@ def save_to_gdrive(request, pk): raise Http404("File tidak dapat ditemukan.") return HttpResponseRedirect(reverse("detail-materi", kwargs={"pk": pk})) - + +# class PasswordChangeView(PasswordChangeView): + +# from_class = PasswordChangeForm +# success_url = reverse_lazy('password_success') + +# def password_success(request): +# return render(request, 'password_success.html', {}) -- GitLab