pytest는 어떻게 모킹함수를 인지하는지
안녕하세요 강사님
강의 정말 재밌게 보고 있습니다.
수강 도중 궁금한 내용이 생겨 질문 남깁니다.
mocker.patch("main.get_todo_by_todo_id",
return_value=Todo(id=1,contents="todo",is_done=True))여기서 인자값으로 문자열 main.get_todo_by_todo_id 를 전달했는데, pytest는 어떻게 저 함수를 모킹대상으로 인지하나요? 개념적으로 설명해주시면 감사합니다~!!
response = client.patch("/todos/1", json={"is_done":False})해당 api 를 호출하고 실행하는 과정에서
main_get_todo_by_todo_id 함수를 호출할 때 어떻게 모킹처리가 되는지 궁금합니다.
답변 1
0
안녕하세요. mocker fixture를 통해 patch()에 문자열을 전달하면 해당 경로의 함수가 호출되지 않고, Mock 객체가 대신 이용되며 이 때 반환값으로는 return_value로 지정한 값이 이용됩니다.
1
pytest의 lifecycle 안에서 import 된 모듈 대신 mocker에 지정된 모듈을 대신 호출하도록 내부처리가 되어 있을 것 같아요. 자세한 내용은 python unittest mock의 구현이나 pytest mock 구현을 직접 확인 부탁드립니다.
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





