diff --git a/gestion/templates/gestion/changepasswd.html b/gestion/templates/gestion/changepasswd.html index 75c05ce..ab1a257 100644 --- a/gestion/templates/gestion/changepasswd.html +++ b/gestion/templates/gestion/changepasswd.html @@ -10,16 +10,15 @@

{% trans "Changement du mot de passe" %} :

-{% if error %} -

{{ error }}

-{% endif %} + {% if success %} -

{% trans "Changement enregistré" %} !

+

{% trans "Changement enregistré" %} !

{% endif %} +
{% csrf_token %} {{ form.as_p }} -   {% trans "Retour" %} +   {% trans "Retour" %}
{% endblock %} diff --git a/gestion/tests/__init__.py b/gestion/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/gestion/tests/test_views.py b/gestion/tests/test_views.py new file mode 100644 index 0000000..dfb65d3 --- /dev/null +++ b/gestion/tests/test_views.py @@ -0,0 +1,32 @@ +from django.contrib.auth import get_user_model +from django.test import Client, TestCase +from django.urls import reverse + +User = get_user_model() + + +class TestPasswordChangeView(TestCase): + def setUp(self): + self.user = User.objects.create_user("alice", password="changeme") + self.url = reverse("change_password") + + def test_get(self): + client = Client() + client.force_login(self.user) + resp = client.get(self.url) + self.assertEqual(resp.status_code, 200) + + def test_post(self): + client = Client() + client.force_login(self.user) + + data = { + "old_password": "changeme", + "new_password1": "s3cr3tp4ss", + "new_password2": "s3cr3tp4ss", + } + resp = client.post(self.url, data) + self.assertEqual(resp.status_code, 200) + + client.logout() + self.assertTrue(client.login(username="alice", password="s3cr3tp4ss")) diff --git a/gestion/views.py b/gestion/views.py index 0659b10..071704b 100644 --- a/gestion/views.py +++ b/gestion/views.py @@ -63,22 +63,20 @@ def change_membre(request): user_form = ChangeFormUser(instance=request.user) return render(request, 'gestion/change.html', locals()) + @login_required def change_password(request): + success = False if request.method == 'POST': - requbis = request.POST.copy() - form = PasswordChangeForm(request.user, data=requbis) + form = PasswordChangeForm(request.user, data=request.POST) if form.is_valid(): - - request.user.profile.photo.delete() form.save() - success = True - else: form = PasswordChangeForm(request.user) - return render(request, 'gestion/changepasswd.html', locals()) - + return render( + request, 'gestion/changepasswd.html', {"form": form, "success": success} + ) def inscription_membre(request):