🤯 Trobleshooting
2025년 4월 19일
무슨 오류야?
assert response.status_code == 401
> assert "detail" in response.data # 일반적으로 에러 메시지가 들어있음
E assert 'detail' in {'error': {'code': ErrorDetail(string='INVALID_CREDENTIALS', code='authentication_failed'), 'message': ErrorDetail(string='아이디 또는 비밀번호가 올바르지 않습니다.', code='authentication_failed')}}
E + where {'error': {'code': ErrorDetail(string='INVALID_CREDENTIALS', code='authentication_failed'), 'message': ErrorDetail(string='아이디 또는 비밀번호가 올바르지 않습니다.', code='authentication_failed')}} = <Response status_code=401, "application/json">.data
accounts\tests\test_login.py:44: AssertionError
44번째 줄에서 assertionError래
assert "detail" in response.data # 일반적으로 에러 메시지가 들어있음
아마 "detail"을 설정 안 해줘서 생긴 오류이지 않을까 싶어 🤔
어떤 작업할 때 발생한 거야?
login_views.py에 대한 pytest 작업 중에 발생한 문제였어.
뭐 때문에 발생한 거야?
나는 detail 설정 안 하고 error랑 code, message로 설정을 해두었거든!
그래서 발생한 문제라고 생각해.
어떻게 해결한 거야?
loginserializers.py에 오류가 발생하면
raise AuthenticationFailed(
{
"error": {
"code": "INVALID_CREDENTIALS",
"message": "아이디 또는 비밀번호가 올바르지 않습니다."
}
}
)
이렇게 반환하도록 설정을 해둬서, test_login.py를 아래의 사진처럼 수정했어.
pytest 결과
아니,, passed 떠서 좋긴 한데, 왜 test_login.py는 50%만 해당되는 건데,, 😔
auth 관련해서는 테스트가 안 되는 건가,, 🤔
회고
이전엔 Swagger에서 하나하나 다 입력하면서 확인했는데 pytest 덕분에 빠르고 한꺼번에 이것저것 테스트 해볼 수 있어서 좋았다!
'🤯 트러블슈팅' 카테고리의 다른 글
[🤯트러블슈팅] pytest login 중, Response 설정 불일치 오류 (0) | 2025.04.19 |
---|---|
[🤯트러블슈팅] pytest login 중, status 불일치 오류 (0) | 2025.04.19 |
[🤯트러블슈팅] PowerShell에서 스크립트 실행(Window) (0) | 2025.04.11 |