🤯 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 관련된 오류도 해결하러 가보자,,!
'🤯 트러블슈팅' 카테고리의 다른 글
[🤯트러블슈팅] pytest login 중, error message 불일치 오류 (0) | 2025.04.19 |
---|---|
[🤯트러블슈팅] pytest login 중, Response 설정 불일치 오류 (0) | 2025.04.19 |
[🤯트러블슈팅] PowerShell에서 스크립트 실행(Window) (0) | 2025.04.11 |