Почему этот обезьян в Pytest не работает?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему этот обезьян в Pytest не работает?

Сообщение Anonymous »

Поскольку я переключаюсь с Джанго на 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Pytest Perforce (autouse = true), который использует обезьян
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Pytest Perforce (autouse = true), который использует обезьян
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • @pytest.mark.skip против @pytest.mark.xfail в Pytest
    Anonymous » » в форуме Python
    0 Ответы
    39 Просмотры
    Последнее сообщение Anonymous
  • @pytest.mark.skip против @pytest.mark.xfail в Pytest
    Anonymous » » в форуме Python
    0 Ответы
    52 Просмотры
    Последнее сообщение Anonymous
  • @pytest.mark.skip vs @pytest.mark.xfail в pytest
    Anonymous » » в форуме Python
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»