DaftAcademy / daftacademy-python_levelup-spring2021

19 stars 10 forks source link

pytest i sqlite #25

Closed mateusz91t closed 3 years ago

mateusz91t commented 3 years ago

Można prosić o podpowiedź jak testować fastapi & sqlite?

Testy apki (routera) z on_event("startup"), w którym mam zainicjalizowane połączenie do DB nie widzą tego połączenia i zwracają mi:

    @homework4.get("/categories")
    async def get_categories():
>       cursor = homework4.dbc.cursor()
E       AttributeError: 'APIRouter' object has no attribute 'dbc'
views\homework4.py:21: AttributeError

factory pattern, asyncio, inne magie?

Poniżej screen z pyczarma 2021-05-07_21h51_46

szoz commented 3 years ago

Według dokumentacji podczas testów trzeba użyć context managera: https://fastapi.tiangolo.com/advanced/testing-events/

Aby nie używać with w każdej funkcji testującej można to przenieść do fixture: https://docs.pytest.org/en/reorganize-docs/yieldfixture.html

mateusz91t commented 3 years ago

Bardzo dziękuję! Świetnie działa z fixturą.