Skip to content

Commit

Permalink
fix: fastapi example test not working. (tortoise#1029)
Browse files Browse the repository at this point in the history
  • Loading branch information
waketzheng committed Jun 5, 2022
1 parent 0d1d848 commit 01f9811
Show file tree
Hide file tree
Showing 4 changed files with 234 additions and 177 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.rst
Expand Up @@ -13,6 +13,7 @@ Changelog
Fixed
^^^^^
- Mixin does not work. (#1133)
- Fastapi example test not working. (#1029)

0.19.1
------
Expand Down
32 changes: 12 additions & 20 deletions examples/fastapi/_tests.py
@@ -1,40 +1,32 @@
# mypy: no-disallow-untyped-decorators
# pylint: disable=E0611,E0401
import asyncio
from typing import Generator

import pytest
from fastapi.testclient import TestClient
from asgi_lifespan import LifespanManager
from httpx import AsyncClient
from main import app
from models import Users

from tortoise.contrib.test import finalizer, initializer


@pytest.fixture(scope="module")
def client() -> Generator:
initializer(["models"])
with TestClient(app) as c:
yield c
finalizer()
def anyio_backend():
return "asyncio"


@pytest.fixture(scope="module")
def event_loop(client: TestClient) -> Generator:
yield client.task.get_loop() # type: ignore
async def client():
async with LifespanManager(app):
async with AsyncClient(app=app, base_url="http://test") as c:
yield c


def test_create_user(client: TestClient, event_loop: asyncio.AbstractEventLoop): # nosec
response = client.post("/users", json={"username": "admin"})
@pytest.mark.anyio
async def test_create_user(client: AsyncClient): # nosec
response = await client.post("/users", json={"username": "admin"})
assert response.status_code == 200, response.text
data = response.json()
assert data["username"] == "admin"
assert "id" in data
user_id = data["id"]

async def get_user_by_db():
user = await Users.get(id=user_id)
return user

user_obj = event_loop.run_until_complete(get_user_by_db())
user_obj = await Users.get(id=user_id)
assert user_obj.id == user_id

0 comments on commit 01f9811

Please sign in to comment.