B1: 项目脚手架 + 数据模型 + 租户管理 - Task 1.1: FastAPI 项目脚手架、SQLite + async SQLAlchemy - Task 1.2: 7 个数据模型 (Tenant, TenantConfig, DigitalEmployee, Conversation, Message, KnowledgeBase, Document) - Task 1.3: 租户 CRUD API + LLM 配置(含 API Key AES 加密) B2: 数字员工配置 + LLM Provider 抽象层 - Task 2.1: 数字员工 CRUD API(关联知识库) - Task 2.2: BaseLLMProvider 抽象接口 + OpenAI/Qwen Provider - Task 2.3: Provider 动态实例化 + test-provider 端点 验证: 26 个测试全部通过 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
30 lines
688 B
Python
30 lines
688 B
Python
import pytest
|
|
from sqlalchemy import inspect
|
|
|
|
from app.database import Base
|
|
from app.models import (
|
|
Conversation,
|
|
DigitalEmployee,
|
|
Document,
|
|
KnowledgeBase,
|
|
Tenant,
|
|
TenantConfig,
|
|
)
|
|
from tests.conftest import test_engine
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_all_tables_created(setup_db):
|
|
expected_tables = {
|
|
"tenants",
|
|
"tenant_configs",
|
|
"digital_employees",
|
|
"conversations",
|
|
"messages",
|
|
"knowledge_bases",
|
|
"documents",
|
|
}
|
|
async with test_engine.begin() as conn:
|
|
tables = await conn.run_sync(lambda sync_conn: inspect(sync_conn).get_table_names())
|
|
assert set(tables) == expected_tables
|