diff --git a/apps/accounts/serializers.py b/apps/accounts/serializers.py index 5e57c8273041ddf27cb0b65cf501bb8b3eb1082f..ec71f10ef8c8909b1b439d7fe4b21286abe449fd 100644 --- a/apps/accounts/serializers.py +++ b/apps/accounts/serializers.py @@ -88,11 +88,3 @@ class AccountChangePassSerializer(serializers.ModelSerializer): "new_password", "confirm_new_password", ] - - def validate_password(self, value): - password_validation.validate_password(value) - return value - - def to_representation(self, instance): - serializer = AccountSerializer(instance) - return serializer.data diff --git a/apps/accounts/tests/test_units/test_serializers.py b/apps/accounts/tests/test_units/test_serializers.py index 903b51a7091b82531f41b44064a523c8c9b883d3..d898d6e15a7272b1d382bbfa6aac09b210230ad6 100644 --- a/apps/accounts/tests/test_units/test_serializers.py +++ b/apps/accounts/tests/test_units/test_serializers.py @@ -1,7 +1,7 @@ from django.test.testcases import TestCase from rest_framework.exceptions import ValidationError -from ...serializers import AccountSerializer, AccountRegisterSerializer +from ...serializers import AccountSerializer, AccountRegisterSerializer, AccountChangePassSerializer from ..factories.accounts import AccountFactory @@ -52,3 +52,18 @@ class AccountRegisterSerializerTest(TestCase): AccountRegisterSerializer( data=data).is_valid, raise_exception=True) + +class AccountChangePassSerializerTest(TestCase): + def test_account_change_pass_inconsistent_should_raise_error( + self): + account = AccountFactory() + data = { + 'new_password': 'justpass', + 'confirm_new_passwored': 'exampleinconsistent', + } + + self.assertRaises( + ValidationError, + AccountChangePassSerializer( + data=data).is_valid, + raise_exception=True) diff --git a/apps/accounts/views.py b/apps/accounts/views.py index 99acfce78d4a0c8e0580d9630adf30f0c87b42c8..5da6d5605192f1dfef988ddbe14e0cf21b7c658b 100644 --- a/apps/accounts/views.py +++ b/apps/accounts/views.py @@ -141,7 +141,7 @@ class AccountViewSet(viewsets.ModelViewSet): new_password = serializer.validated_data.pop("new_password") confirm_new_password = serializer.validated_data.pop("confirm_new_password") - if User.objects.filter(username=username).exists() and new_password == confirm_new_password: + if new_password == confirm_new_password: user = User.objects.get(username=username) user.set_password(new_password) user.save() @@ -158,10 +158,8 @@ class AccountViewSet(viewsets.ModelViewSet): new_password = ''.join(SystemRandom().choice(ascii_lowercase + ascii_uppercase + digits) for _ in range(10)) - if User.objects.filter(username=username).exists(): - user = User.objects.get(username=username) - user.set_password(new_password) - user.save() - return Response({"Success, the random password is: ", - new_password}, status=status.HTTP_200_OK) - return Response("Sorry, user didn't existst", status=status.HTTP_400_BAD_REQUEST) + user = User.objects.get(username=username) + user.set_password(new_password) + user.save() + return Response({"Success, the random password is: ", + new_password}, status=status.HTTP_200_OK)