From 4686920d0014969b82dc16e309af2e95ebb183f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=ADcero=20Raupp=20Rolim?= Date: Thu, 23 Apr 2026 09:27:14 -0300 Subject: [PATCH 1/2] =?UTF-8?q?tests:=20Conserta=20retorno=20de=20autentic?= =?UTF-8?q?a=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ci.yml | 4 +++- bodepontoio/views.py | 16 ++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0143bd2..cbd9014 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -70,7 +70,9 @@ jobs: run: uv sync --all-extras - name: Run tests - run: uv run pytest --junitxml=pytest.xml | tee pytest-coverage.txt + run: | + set -o pipefail + uv run pytest --junitxml=pytest.xml | tee pytest-coverage.txt - name: Coverage comment if: matrix.python-version == '3.12' && github.event_name == 'pull_request' diff --git a/bodepontoio/views.py b/bodepontoio/views.py index da4f97a..9e77e78 100644 --- a/bodepontoio/views.py +++ b/bodepontoio/views.py @@ -1,6 +1,6 @@ from django.contrib.auth import get_user_model from rest_framework import permissions, status -from rest_framework.exceptions import AuthenticationFailed +from rest_framework.exceptions import AuthenticationFailed, ValidationError from rest_framework.response import Response from rest_framework.views import APIView from rest_framework_simplejwt.exceptions import TokenError @@ -43,14 +43,14 @@ def post(self, request): try: user = User.objects.get(email=serializer.validated_data["email"]) except User.DoesNotExist: - raise AuthenticationFailed("Código inválido ou expirado.") from None + raise ValidationError("Código inválido ou expirado.") from None if not user.is_active: - raise AuthenticationFailed("Conta de usuário desativada.") + raise ValidationError("Conta de usuário desativada.") success, error = verify_otp(user, serializer.validated_data["code"], OTPCode.Purpose.LOGIN) if not success: - raise AuthenticationFailed(error) + raise ValidationError(error) if not user.auth.is_email_verified: user.auth.is_email_verified = True @@ -199,11 +199,11 @@ def post(self, request): try: user = User.objects.get(email=serializer.validated_data["email"]) except User.DoesNotExist: - raise AuthenticationFailed("Código inválido ou expirado.") from None + raise ValidationError("Código inválido ou expirado.") from None success, error = verify_otp(user, serializer.validated_data["code"], OTPCode.Purpose.EMAIL_CONFIRM) if not success: - raise AuthenticationFailed(error) + raise ValidationError(error) user.auth.is_email_verified = True user.auth.save(update_fields=["is_email_verified"]) @@ -223,11 +223,11 @@ def post(self, request): try: user = User.objects.get(email=serializer.validated_data["email"]) except User.DoesNotExist: - raise AuthenticationFailed("Código inválido ou expirado.") from None + raise ValidationError("Código inválido ou expirado.") from None success, error = verify_otp(user, serializer.validated_data["code"], OTPCode.Purpose.PASSWORD_RESET) if not success: - raise AuthenticationFailed(error) + raise ValidationError(error) user.set_password(serializer.validated_data["new_password"]) user.save() From b67c70d422a0bb2a9a6d4906d0408e36839655a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=ADcero=20Raupp=20Rolim?= Date: Thu, 23 Apr 2026 09:30:59 -0300 Subject: [PATCH 2/2] =?UTF-8?q?fix(lint):=20Remove=20item=20n=C3=A3o=20uti?= =?UTF-8?q?lizado?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bodepontoio/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bodepontoio/views.py b/bodepontoio/views.py index 9e77e78..59b9124 100644 --- a/bodepontoio/views.py +++ b/bodepontoio/views.py @@ -1,6 +1,6 @@ from django.contrib.auth import get_user_model from rest_framework import permissions, status -from rest_framework.exceptions import AuthenticationFailed, ValidationError +from rest_framework.exceptions import ValidationError from rest_framework.response import Response from rest_framework.views import APIView from rest_framework_simplejwt.exceptions import TokenError