묻고 답해요
143만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! FastAPI 입문
AssertionError: Expected 'undone' to be called once. Called 0 times.
def test_update_todo(client, mocker): ''' 특정 객체 update 테스트 # 200 ''' mocker.patch( "main.get_todo_by_todo_id", return_value= ToDo(id=1, contents="todo", is_done=True), ) undone = mocker.patch.object(ToDo, "undone") mocker.patch( "main.update_todo", return_value=ToDo(id=1, contents="todo", is_done=False), ) # API 호출 여부 response = client.patch("/todos/1", json={"is_done": False}) undone.assert_called_once_with() assert response.status_code == 200 # 성공 assert response.json() == {"id": 1, "contents": "todo", "is_done": False} # 성공 # Resetting the mock before the next scenario # 404 mocker.patch( "main.get_todo_by_todo_id", return_value=None, ) response = client.patch("/todos/1", json={"is_done": True}) assert response.status_code == 404 assert response.json() == {"detail": "ToDo Not Found"} pytest 시 아래와 같은 에러가 발생합니다. 강사님 코드와 상이한 부분도 없고 로직도 맞게 작성한 것 같은데 undone이 한번도 호출이 되지 않았다고 합니다.During handling of the above exception, another exception occurred: client = <starlette.testclient.TestClient object at 0xffff89948640>, mocker = <pytest_mock.plugin.MockerFixture object at 0xffff89004e50> def test_update_todo(client, mocker): ''' 특정 객체 update 테스트 # 200 ''' mocker.patch( "main.get_todo_by_todo_id", return_value= ToDo(id=1, contents="todo", is_done=True), ) undone = mocker.patch.object(ToDo, "undone") > print(undone.assert_called_once_with()) E AssertionError: Expected 'undone' to be called once. Called 0 times. tests/test_main.py:106: AssertionError ========================================================== short test summary info ========================================================== FAILED tests/test_main.py::test_update_todo - AssertionError: Expected 'undone' to be called once. Called 0 times. ======================================================== 1 failed, 5 passed in 0.18s ======================================================== #
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)
session 을 닫아야 하는 이유
session 은 왜 닫아야 하나요? 파이썬 코루틴 활용 강의에서 with requests.Session() as session: session.get(url) 을 통해 session 을 열고 닫아야 한다고 하셨는데, 왜 session 을 닫아야 하는지 궁금합니다.
-
해결됨파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)
sec3-2. robots.txt에 관한 질문입니다.
안녕하세요. 선생님. 각 웹사이트에서 크롤링에 대한 가능범위를 robots.txt에서 확인할 수 있다고 하셨습니다. robots.txt에 대한 부분을 확인할 수 있는 경우도 있지만 사실 robots.txt에 대해 명시하지 않는 사이트들도 많아서, 이런 경우에는 해당 웹사이트가 크롤링에 대해 어떤 스탠스를 취하고 있는지 어려운 경우가 있습니다.CU편의점 웹사이트는 Request Blocked 메시지를 띄운다던가, 어떤 웹사이트는 400번 에러를 내며 크롤링 가능범위를 보여주지 않습니다.이런 경우에는 웹사이트가 어떤 스탠스를 갖고 있다고 판단하면 될까요? 또한, 블로그와 같은 개인적인 공간에 특정 웹사이트를 크롤링하는 코드를 올리는 것은 문제의 소지가 있을까요?강의 감사히 듣고 있습니다. 감사합니다.
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)
프로젝트 관련질문
현재 몽고디비에 데이터가 잘들어가는지 확인하기 위해서 odmantic을 설치한 이후로 오류가 떴고이러한 오류가떴고 확인 해보니from odmantic import AIOEngine 문제라는 판단으로 pip install --upgrade odamantic을 했지만 별 효과가 없어서 문의하게되었습니다. 추가적으로 하다보니 init.py 이했을떄는 문제없고 mongodb.connect할 때 문제인데 mongodb의 연결문제라고 생각중입니다 Process SpawnProcess-1: Traceback (most recent call last): File "C:\Users\hs091\anaconda3\lib\multiprocessing\process.py", line 315, in _bootstrap self.run() File "C:\Users\hs091\anaconda3\lib\multiprocessing\process.py", line 108, in run self._target(*self._args, **self._kwargs) File "C:\Users\hs091\anaconda3\lib\site-packages\uvicorn\_subprocess.py", line 76, in subprocess_started target(sockets=sockets) File "C:\Users\hs091\anaconda3\lib\site-packages\uvicorn\server.py", line 61, in run return asyncio.run(self.serve(sockets=sockets)) File "C:\Users\hs091\anaconda3\lib\asyncio\runners.py", line 44, in run return loop.run_until_complete(main) File "C:\Users\hs091\anaconda3\lib\asyncio\base_events.py", line 642, in run_until_complete return future.result() File "C:\Users\hs091\anaconda3\lib\site-packages\uvicorn\server.py", line 68, in serve config.load() File "C:\Users\hs091\anaconda3\lib\site-packages\uvicorn\config.py", line 467, in load self.loaded_app = import_from_string(self.app) File "C:\Users\hs091\anaconda3\lib\site-packages\uvicorn\importer.py", line 21, in import_from_string module = importlib.import_module(module_str) File "C:\Users\hs091\anaconda3\lib\importlib\__init__.py", line 127, in import_module return bootstrap.gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1030, in gcdimport File "<frozen importlib._bootstrap>", line 1007, in findand_load File "<frozen importlib._bootstrap>", line 986, in findand_load_unlocked File "<frozen importlib._bootstrap>", line 680, in loadunlocked File "<frozen importlib._bootstrap_external>", line 850, in exec_module File "<frozen importlib._bootstrap>", line 228, in callwith_frames_removed File "C:\Users\hs091\studyDs\teaching-async-python-main\6-실전-프로젝트-콜렉터스\app\main.py", line 5, in <module> from app.models import mongodb File "C:\Users\hs091\studyDs\teaching-async-python-main\6-실전-프로젝트-콜렉터스\app\models\__init__.py", line 2, in <module> from odmantic import AIOEngine File "C:\Users\hs091\anaconda3\lib\site-packages\odmantic\__init__.py", line 1, in <module> from .bson import ObjectId File "C:\Users\hs091\anaconda3\lib\site-packages\odmantic\bson.py", line 11, in <module> from pydantic.datetime_parse import parse_datetime File "C:\Users\hs091\anaconda3\lib\site-packages\pydantic\_migration.py", line 295, in wrapper raise PydanticImportError(f'`{import_path}` has been removed in V2.') pydantic.errors.PydanticImportError: pydantic.datetime_parse:parse_datetime has been removed in V2. For further information visit https://errors.pydantic.dev/2.1.1/u/import-error
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)
프로젝트 부분에 대한 질문
현재 혼자 처음시작부터 따라하는 부분으로써 두가지의 오류가 있었고 init.py에서는 이부분에서 config에서 가져오는 MONGO_DB_NAME의 문제가있는데 config나 secrets에서 철자 틀린건 없었습니다 오류내용은 line too long (81 > 79 characters)Flake8(E501) 이오류인데 flake의 잘못인가요??main.py 에서 그냥 import 오류인 app.models.mongodb' imported but unusedFlake8(F401) 똑같은 문제인것같습니다
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)
몽고디비 설치에 따른 GUI변경
GUI가 변한 것으로 인해 잘되어가는지 몰라서 한번 확인이가능할까요??
-
해결됨실전! FastAPI 입문
Depends() 안에 callable한 것을 넣는 경우와 안 넣는 경우
4:24 초에 user_repo: UserRepository = Depends()이런 식으로 여기서는 Depends() 안에 아무것도 넣어주지 않는데, 그냥 Depends() 자체만으로는 어떤 의미가 있나요?
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)
flask 설치에 따라서
pip install flask를 했는데설치 하는 도중에 마지막에 WARNING: You are using pip version 21.2.3; however, version 23.2.1 is available.You should consider upgrading via the 'C:\Users\hs091\FastAPI\venv\Scripts\python.exe -m pip install --upgrade pip' command.이러한 오류가떴었고 pip install --upgrade pip를 했지만 이겄도한 pip help install 이러한 오류가뜨게됩니다 방안이있을까요?
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)
앞부분에 (base)나 (venv)자체가 뜨지가 않습니다.
window 에서하는 중인데 비주얼스튜디오코드를 설치를 햇는데 아예 (base)라는 부분이 뜨지가 않습니다. hello.py를 하면 잘나오는 부분은 있습니다. 또한 .\venv\Scripts\activate.bat 명령어를 치면 기존 터미널에 있던 문자들이 알아서 clear가 되지만 가상환경인지 잘모르는 부분이됩니다.
-
해결됨실전! FastAPI 입문
(실습) MySQL 컨테이너 실행
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=todos -e MYSQL_DATABASE=todos -d -v todos:/db -–name todos mysql:8.0터미널에서 위 명령어 실행하면,docker: Invalid containerPort: 3306 -e.이런 오류가 발생합니다. ㅠㅠ 참고로 docker 처음 써보는 초급입니다.
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)
모듈 인식
윈도우10 입니다 강의 영상대로 따라하고 있었는데 flask 실행하는 부분 python hello.py 실행 xpython3 hello.py 실행orequests 실행하는 부분python hello.py 실행opython3 hello.py 실행 x같은 가상환경인데 flask 실행할때는 python에 3을 붙여야 실행하고 requests에서는 python에 3을 붙이지 않아야 실행을 하는데 같은 py파일에 코드만 바꿔서 했는데 이러는데 왜 이러는건가요...?
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)
cput 바운드 01-1 질문입니다
나오는 값이 너무 많아서 정수형 4300제한이라고 나옵니다 그래서 입력값에 50이 아닌 낮은 숫자를 넣으면 실행은 되는데요 정수형 제한을 풀려면 sys를 써야 하는 걸로 아는데 그 부분은 코드에 없어서 그러는데 혹시 어떻게 하셨나요?
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)
await 위치 질문
안녕하세요, await 위치를 완전히 이해하지 못한 것 같아 질문드립니다.제가 이해한 await란 비동기 함수 내에서 특정 객체가 끝날때까지 기다려서 결과를 반환하기 위해 사용하는 것인데요. 이를 간단하게 말하자면 비동기 함수 내에서 동시성을 가지고 처리해야 할 부분(= 탈출해야할 부분) 앞에 기다리라는 의미로 await를 쓴다고 이해한 것이 맞을까요?
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)
실전 프로젝트 최종 디렉토리 문의
안녕하세요,마지막 실전 프로젝트에서 디렉토리가 많은데, 어떤 것이 최종일까요? 9번이 강의 내용으로는 최종인 것 같은데 디렉토리 구조가 좀 다른 것 같아서요.
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)
6-4 03:57~ hhh 질문입니다!
페이지의 Item ID: hhh에서 hhh는 어떤 파일의 어느 부분에서 입력되는건지 궁금합니다!
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)
await asyncio.gather 메소드 안에서 마지막 delivery 함수 이후에 , 를 추가하는 이유가 뭘까요?
결과 값은 같아 보이는데 아래 이미지에서 마지막에 ,를 추가한 이유가 있을까요?
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)
코루틴 활용 런타임에러
안녕하세요 코루틴 활용 파트에서코드를 실행해보니raise RuntimeError('Event loop is closed')RuntimeError: Event loop is closed라고 문구가 뜨네요..aiohttp 3.7.3 버전 인스톨하는데 3.7.4.post0으로 다운이 되었구요. 해결책 좀 알려주시면 감사하겠습니다.
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)
언패킹 관련 질문입니다.
안녕하세요.04-2-coroutine-fetcher.py에서 fetcher 함수에서 url을 언패킹하실 때 *를 사용하셨는데 아래 코드에서 가 어떻게 작동하는건지 알 수 있을까요?result = await asyncio.gather(*[fetcher(session, url) for url in urls])
-
해결됨파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)
cpu 연산
안녕하세요. cpu 연산 관련해서 질문드립니다. 동시성과 병렬성 각각 cpu연산이 어떤식으로 나누어서 진행되는 것일까요? 연산이 아닌 네트워크인 경우에는 각 작업별인 것을 이해했는데, 연산일 경우 예시를 들어서 설명해주시면 감사하겠습니다. 그리고 이제 파이썬 웹 개발을 막 완료한 초급 개발자인데, 내용이 너무 어려워서..이해가 잘 안되는데 반복하면 될까요? ㅜㅜ추가적인 공부방법도 알려주시길 부탁드립니다.
-
해결됨파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)
보너스 강의
보너스 강의는 어디서 볼 수 있나요?