fastapi

Форк
0
50 строк · 1.2 Кб
1
from fastapi.testclient import TestClient
2
from sqlalchemy import create_engine
3
from sqlalchemy.orm import sessionmaker
4
from sqlalchemy.pool import StaticPool
5

6
from ..database import Base
7
from ..main import app, get_db
8

9
SQLALCHEMY_DATABASE_URL = "sqlite://"
10

11
engine = create_engine(
12
    SQLALCHEMY_DATABASE_URL,
13
    connect_args={"check_same_thread": False},
14
    poolclass=StaticPool,
15
)
16
TestingSessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
17

18

19
Base.metadata.create_all(bind=engine)
20

21

22
def override_get_db():
23
    try:
24
        db = TestingSessionLocal()
25
        yield db
26
    finally:
27
        db.close()
28

29

30
app.dependency_overrides[get_db] = override_get_db
31

32
client = TestClient(app)
33

34

35
def test_create_user():
36
    response = client.post(
37
        "/users/",
38
        json={"email": "deadpool@example.com", "password": "chimichangas4life"},
39
    )
40
    assert response.status_code == 200, response.text
41
    data = response.json()
42
    assert data["email"] == "deadpool@example.com"
43
    assert "id" in data
44
    user_id = data["id"]
45

46
    response = client.get(f"/users/{user_id}")
47
    assert response.status_code == 200, response.text
48
    data = response.json()
49
    assert data["email"] == "deadpool@example.com"
50
    assert data["id"] == user_id
51

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.