Skip to content

Commit

Permalink
Fix fastapi example test not working and make deps raise SolverProble…
Browse files Browse the repository at this point in the history
…mError. (#1247)

* fix: dependencies SolverProblemError. (#1246)

* fix: fastapi example test not working. (#1029)
  • Loading branch information
waketzheng committed Sep 13, 2022
1 parent db9c36c commit 312165c
Show file tree
Hide file tree
Showing 4 changed files with 946 additions and 315 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.rst
Expand Up @@ -15,7 +15,9 @@ Added
- Added config_class option to pydantic model genator that allows the developer to customize the generated pydantic model's `Config` class. (#1048)
Fixed
^^^^^
- Fastapi example test not working. (#1029)
- Fix create index sql error. (#1202)
- Fix dependencies resolve error. (#1246)

0.19.2
------
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 312165c

Please sign in to comment.