🤯 Trobleshooting 

2025년 4월 19일


무슨 오류야? 

>       assert response.status_code == 200
E       assert 201 == 200
E        +  where 201 = <Response status_code=201, "application/json">.status_code
accounts\tests\test_login.py:31: AssertionError

 

31번째 줄에서 assertionError래

 

assert 200으로 설정했는데 내가 login_views.py 속 status를 201로 설정해서 발생한 오류 같아.

        assert response.status_code == 200

 

31번째 줄 내용이 이거였거든


어떤 작업할 때 발생한 거야? 

login_views.py에 대한 pytest 작업 중에 발생한 문제였어.


뭐 때문에 발생한 거야? 

로그인 완료 시 200 ok를 띄워야 하는 게 맞는데, 내가 201 created로 status 설정해 뒀더라?
pytest로 확인할 수 있었어.


어떻게 해결한 거야? 

▼내 코드

더보기
# 로그인
    def post(self, request):
        serializer = self.get_serializer(data=request.data)
        if serializer.is_valid():
            user = serializer.save()

            # JWT 토큰 생성
            refresh = RefreshToken.for_user(user)

            return Response({
                    "token": str(refresh)
                }, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

내가 색칠한 노란색 부분을 보면 201로 처리해 뒀잖아.

로그인이기 때문에 그냥 200 ok 띄우면 돼서, 201 -> 200으로 수정해 줬어.

 

 

 

ㅎ; 다른 오류가 또 터졌네.
근데 45번째 줄 코드 보니까
# 토큰 에러
    def handle_token_error(self, error_type):​

이거더라고? login 관련된 에러는 해결됐어.

 


회고

다른 기수의 선배님께서 test.py 파일에 대해 언급해 주신 적이 있었는데 이런 용도로 쓰는 거구나 싶은 깨달음을 얻을 수 있었어.

그때 간단하게 설명해 주시는 게 이해가 안 됐는데, 직접 해보니까 알듯 말듯한 느낌이 드네!

 

처음이니까 어색하고 낯선 거지, 계속하다 보면 능숙해질 거 같아!

재밌었다! 이제 token 관련된 오류도 해결하러 가보자,,!

🐾Recent posts