增加项目的各个功能

This commit is contained in:
qiaoxinjiu
2026-05-07 19:21:19 +08:00
parent aba1618f89
commit ee6cd4ae66
121 changed files with 9346 additions and 43 deletions

View File

@@ -0,0 +1,62 @@
from sqlalchemy import BigInteger, Column, Integer, SmallInteger, String, TIMESTAMP, Text, text
from sqlalchemy.dialects.postgresql import ARRAY, JSONB
from sqlalchemy.ext.declarative import declarative_base
from common.sqlSession import to_dict
Base = declarative_base()
Base.to_dict = to_dict
class Module(Base):
__tablename__ = 'module'
id = Column(BigInteger, primary_key=True, autoincrement=True, comment='id')
project_id = Column(BigInteger, nullable=False, comment='项目id')
parent_id = Column(BigInteger, default=0, comment='父模块id')
name = Column(String(128), nullable=False, comment='模块名称')
sort_order = Column(Integer, default=0, comment='排序')
path = Column(String(512), comment='模块路径')
is_delete = Column(Integer, default=0, comment='0未删除1已删除')
class TestCase(Base):
__tablename__ = 'test_case'
id = Column(BigInteger, primary_key=True, autoincrement=True, comment='id')
project_id = Column(BigInteger, nullable=False, comment='项目id')
module_id = Column(BigInteger, comment='模块id')
case_key = Column(String(64), nullable=False, comment='项目内唯一编号')
title = Column(String(255), nullable=False, comment='标题')
preconditions = Column(Text, comment='前置条件')
steps = Column(Text, comment='步骤')
expected_results = Column(Text, comment='预期结果')
priority = Column(SmallInteger, default=2, comment='0:P0 1:P1 2:P2 3:P3')
case_type = Column(SmallInteger, default=1, comment='1:功能 2:性能 3:安全 4:接口')
tags = Column(ARRAY(String(64)), server_default=text("'{}'::varchar[]"), comment='标签')
status = Column(SmallInteger, default=1, comment='1:正常 2:已废弃 3:评审中 4评审通过')
is_auto = Column(Integer, default=0, comment='0未实现自动化1已实现自动化')
created_by = Column(BigInteger, comment='创建人')
is_delete = Column(Integer, default=0, comment='0未删除1已删除')
created_time = Column(TIMESTAMP, server_default=text('CURRENT_TIMESTAMP'), nullable=True, comment='创建时间')
updated_time = Column(TIMESTAMP, server_default=text('CURRENT_TIMESTAMP'), server_onupdate=text('CURRENT_TIMESTAMP'), nullable=True, comment='修改时间')
class CaseSnapshot(Base):
__tablename__ = 'case_snapshot'
id = Column(BigInteger, primary_key=True, autoincrement=True, comment='id')
case_id = Column(BigInteger, nullable=False, comment='用例id')
version = Column(Integer, nullable=False, comment='版本')
snapshot = Column(JSONB, nullable=False, comment='快照')
created_by = Column(BigInteger, comment='创建人')
created_time = Column(TIMESTAMP, server_default=text('CURRENT_TIMESTAMP'), nullable=True, comment='创建时间')
class CaseReview(Base):
__tablename__ = 'case_review'
id = Column(BigInteger, primary_key=True, autoincrement=True, comment='id')
case_id = Column(BigInteger, nullable=False, comment='用例id')
reviewer_id = Column(BigInteger, nullable=False, comment='评审人')
status = Column(SmallInteger, default=0, comment='0:待评审 1:通过 2:驳回 3:建议修改')
comments = Column(Text, comment='评论')
diff_content = Column(Text, comment='JSON diff')
created_time = Column(TIMESTAMP, server_default=text('CURRENT_TIMESTAMP'), nullable=True, comment='创建时间')
reviewed_time = Column(TIMESTAMP, nullable=True, comment='评审时间')