inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! FastAPI 입문

(실습) 테스트 코드 - PATCH API

update 테스트 코드

해결된 질문

337

SJ

작성한 질문수 155

0

update 코드를

@app.patch("/todos/{todo_id}", status_code=status.HTTP_200_OK)
def update_todo_handler(
    todo_id: int,
    is_done: bool = Body(..., embed=True),
    session: Session = Depends(get_db),
):
    todo: ToDo | None = get_todo_by_todo_id(session=session, todo_id=todo_id)
    if todo:
        todo.done() if is_done is True else todo.undone()
        todo: ToDo = update_todo(session=session, todo=todo)
        return ToDoSchema.from_orm(todo)
    return HTTPException(status_code=404, detail="Todo not found")

위와 같이 작성하고 난뒤에 ,

테스트 코드 200 을 제외한 우선 404 기준으로만 작성했을때

# 404
mocker.patch("main.get_todo_by_todo_id", return_value=None)

response = client.patch("/todos/1", json={"is_done": True})
assert response.json()['status_code'] == 404
assert response.json()['detail'] == "Todo not found"


다음과 같이 작성했을때 통과가 됐습니다.

하지만 위의 작성된 코드는 영상과 다른 코드입니다.

저렇게 정확히 키값을 설정을 해줘야만 통과가 되더라구요.

제가 어디를 놓치고 있는걸까요 ?

python 리팩토링 orm FastAPI pytest

답변 1

0

신동현

안녕하세요. 테스트가 통과하지 않는 경우, 어떤 assert 문에 assertion error가 잡히나요?
에러 메세지와 코드를 첨부해주시면 디버깅에 도움을 드릴 수 있을 것 같습니다.

1

SJ

assert response.json() 문에서 error 가 발생했는데요 .

조금 더 디버깅해보고 print 찍어보고 해서 해결을 했네요 ㅎ

관련 에러 내용 다시 찾아보고 말씀드릴려고 했지만 찾지 못했습니다.

감사합니다 !

FasAPI Swagger UI에서 단일조회 todo_id 를 사용했는데, 입력값에 1을 넣으니 오류가 뜹니다 ㅠ

0

87

2

DB 질문

0

81

2

Post API 강의 질문

0

55

2

post 작성 오류

0

107

3

uvicorn 종료 문제

0

436

2

왜 return타입이 ToDo라는 스트링인가요?

0

130

2

ORM 연관관계

0

109

2

Oracle DB 연결과 관련해 질문이 있습니다..

0

153

2

섹션 2, 3의 PATCH API의 차이점

0

132

1

ORM 테이블 생성

0

119

1

테스트 코드 오류

0

177

1

orm relationship 정의 중 해당 에러 발생 시 어떻게 고쳐야 하는걸까요

0

214

3

FastAPI 폴더 구조에 대해 질문이 있습니다.

0

412

2

질문 있습니다.

0

161

2

ORM 개념

0

133

1

mysql root 비밀번호 변경관련

0

296

2

[질문] patch API

0

151

3

디자인 패턴

0

128

1

main.py 리로드문제

0

235

2

인터프리터 오류

0

286

4

로그 저장에 대한 질문입니다.

0

100

1

Internal Server Error

0

240

2

PATCH API - 수정

0

199

2

파이참 임포트 문제

0

263

1