Поскольку я переключаюсь с Джанго на Fastapi, мне также необходимо изменить тесты с единомышленников на питесты. Я создаю пользовательский класс Testapi и имею тестовые примеры в качестве методов, которые отлично работают. Однако я хочу переопределить некоторые функции (не зависимости), которые используются в коде в одном Testcase. Я попробовал это, но это не работает: < /p>
def test_smoke_me_api(self, monkeypatch):
monkeypatch.setattr("app.auth.utils.get_user", mock_get_user)
re = self.c.get("/me/")
Он не вызывает функцию mock_get_user , но вместо этого get_user One. Согласно некоторым документам, я добавил обезьян в функцию setup_class моего тестового класса, но это не сработало, так как это, по -видимому, инициализируется только одним аргументом (self).
self.c - это клиент, который является TestClient инициализирован в Setup_Class .
Минимальный пример:
app/auth/utils.py
def get_user(sub) -> dict:
re = requests.get(f"https://{API_DOMAIN}/api/v2/users/{sub}")
return re.json()
App/auth/views.py
from app.auth.utils import get_user
@router.get("/")
async def me_get(sub: str = Security(auth.verify)) -> dict:
return get_user(sub)
App/test_main.py
def mock_get_user(sub = "testing") -> dict:
return {
"created_at": "2023-08-15T13:25:31.507Z",
"email": "test@test.org"
}
class TestAPI:
def setup_class(self):
from app.main import app
self.c = TestClient(app)
def test_smoke_me_api(self, monkeypatch):
monkeypatch.setattr("app.auth.utils.get_user", mock_get_user)
re = self.c.get("/me/")
Подробнее здесь: https://stackoverflow.com/questions/778 ... ot-working
Почему этот обезьян в Pytest не работает? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение