Files
agentic-studio/zipit/rest_api_check/prompts/5_qa_test_main.py.md
2026-04-12 18:48:14 +03:00

2.4 KiB

5 — QA (qa) — test_main.py

Malli: template

System Prompt

(template pipeline — ei LLM-promptia)

Syöte

Generated from spec: ["User"]

Tulos

from fastapi.testclient import TestClient
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from main import app, get_db
from models import Base

TEST_DB = "sqlite:///./test.db"
test_engine = create_engine(TEST_DB, connect_args={"check_same_thread": False})
TestSession = sessionmaker(autocommit=False, autoflush=False, bind=test_engine)
Base.metadata.create_all(bind=test_engine)

def override_get_db():
    db = TestSession()
    try:
        yield db
    finally:
        db.close()

app.dependency_overrides[get_db] = override_get_db
client = TestClient(app)

def test_create_user():
    response = client.post('/users/', json={"UserID":1,"Username":"Test Username","Email":"Test Email","PasswordHash":"Test PasswordHash"})
    assert response.status_code == 201
    assert 'id' in response.json()

def test_list_users():
    client.post('/users/', json={"UserID":1,"Username":"Test Username","Email":"Test Email","PasswordHash":"Test PasswordHash"})
    response = client.get('/users/')
    assert response.status_code == 200
    assert len(response.json()) >= 1

def test_get_user_by_id():
    created = client.post('/users/', json={"UserID":1,"Username":"Test Username","Email":"Test Email","PasswordHash":"Test PasswordHash"}).json()
    item_id = created['id']
    response = client.get(f'/users/{item_id}')
    assert response.status_code == 200
    assert response.json()['id'] == item_id

def test_get_user_not_found():
    response = client.get('/users/99999')
    assert response.status_code == 404

def test_update_user():
    created = client.post('/users/', json={"UserID":1,"Username":"Test Username","Email":"Test Email","PasswordHash":"Test PasswordHash"}).json()
    item_id = created['id']
    response = client.put(f'/users/{item_id}', json={"UserID":1,"Username":"Updated Username","Email":"Test Email","PasswordHash":"Test PasswordHash"})
    assert response.status_code == 200

def test_delete_user():
    created = client.post('/users/', json={"UserID":1,"Username":"Test Username","Email":"Test Email","PasswordHash":"Test PasswordHash"}).json()
    item_id = created['id']
    response = client.delete(f'/users/{item_id}')
    assert response.status_code == 204
    response = client.get(f'/users/{item_id}')
    assert response.status_code == 404