mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-21 04:46:26 +00:00
重构示例模块为代码生成模块,包括新增模型、服务、控制器等核心组件 更新数据库配置从MySQL切换为PostgreSQL并调整相关参数 优化代码生成模板逻辑,移除无用字段和功能 添加PostgreSQL菜单SQL生成测试用例 更新前端API路径和菜单配置 移除旧的示例模块相关代码
65 lines
2.1 KiB
Python
65 lines
2.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
测试PostgreSQL菜单SQL生成
|
|
"""
|
|
import sys
|
|
import os
|
|
|
|
# 添加项目根目录到路径
|
|
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
|
|
|
from app.api.v1.module_generator.gencode.tools.jinja2_template_util import Jinja2TemplateUtil
|
|
from app.api.v1.module_generator.gencode.schema import GenTableOutSchema
|
|
|
|
def test_postgres_menu_sql_generation():
|
|
"""
|
|
测试PostgreSQL菜单SQL生成
|
|
"""
|
|
# 模拟GenTableOutSchema对象
|
|
gen_table = GenTableOutSchema(
|
|
id=1,
|
|
table_name="test_table",
|
|
table_comment="测试表",
|
|
business_name="test_table",
|
|
function_name="测试表",
|
|
module_name="test_module",
|
|
parent_menu_id=7, # 使用当前默认的目录ID
|
|
status="0",
|
|
created_time=None,
|
|
updated_time=None,
|
|
columns=[],
|
|
pk_column=None,
|
|
sub_table=None,
|
|
sub=False
|
|
)
|
|
|
|
# 准备上下文
|
|
context = Jinja2TemplateUtil.prepare_context(gen_table)
|
|
# 手动设置数据库类型为PostgreSQL
|
|
context['db_type'] = 'postgres'
|
|
|
|
# 获取模板
|
|
template = Jinja2TemplateUtil.get_template('sql/sql.sql.j2')
|
|
|
|
# 渲染模板
|
|
postgres_sql = template.render(context)
|
|
|
|
# 打印生成的SQL
|
|
print("=== PostgreSQL菜单SQL ===")
|
|
print(postgres_sql)
|
|
print("\n" + "="*50 + "\n")
|
|
|
|
# 验证SQL语法
|
|
assert "RETURNING id INTO parent_id;" in postgres_sql, "PostgreSQL SQL中缺少RETURNING子句"
|
|
assert "INSERT INTO" in postgres_sql, "PostgreSQL SQL中缺少INSERT语句"
|
|
assert "gen_random_uuid()" in postgres_sql, "PostgreSQL SQL中缺少gen_random_uuid()函数"
|
|
assert str(gen_table.parent_menu_id) in postgres_sql, f"PostgreSQL SQL中未找到正确的parent_menu_id: {gen_table.parent_menu_id}"
|
|
|
|
print("PostgreSQL菜单SQL生成测试通过!")
|
|
print(f"父菜单ID: {gen_table.parent_menu_id}")
|
|
print(f"功能名称: {gen_table.function_name}")
|
|
print(f"模块名称: {gen_table.module_name}")
|
|
print(f"业务名称: {gen_table.business_name}")
|
|
|
|
if __name__ == "__main__":
|
|
test_postgres_menu_sql_generation() |