main import app
import random
import uuid
USER = {"phone_number":
f"+7 {random.randint(100, 1000)} {random.randint(100, 1000)} {random.randint(1000, 10000)}",
"full_name":
f"Test User {uuid.uuid4()}"}
async def test_register(ac):
response = await ac.post("/register", json=USER)
assert response.status_code == 201
@pytest.mark.asyncio
async def test_auth():
async with AsyncClient(app=app, base_url="http://test") as ac:
await test_register(ac=ac)
Ошибка
:
E fixture 'ac' not found
> available fixtures: cache, capfd, capfdbinary, caplog, capsys, capsysbinary, doctest_namespace, event_loop, monkeypatch, pytestconfig, record_property, record_testsuite_property, record_xml_attribute, recwarn, tmp_path, tmp_path_factory, tmpdir, tmpdir_factory, unused_tcp_port, unused_tcp_port_factory
> use 'pytest --fixtures [testpath]' for help on them.
фикстура ac не найдена, вроде ж написано в ошибке
Это понятно, но на стаковерфлоу такого кейса нет, как это решить?
Для начала сформулировать вопрос корректно. При чем тут стековерфлоу? Какого еще кейса нету? И что именно понятно? pytest не нашел фиксутуру которая нужна для выполнения теста. Вопрос в том как ее написать или в чем?
Да, вопрос как ее написать для данного кейса
почитать в документации что такое фикстуры, а если кратко - использовать декоратор @pytest.fixture
А как есть применить к контекстному менеджеру (ac)? Иногда понимаю складывается из пракики, а не теории.
Обсуждают сегодня