Files
effekt-interface/app/api/model/planModel.py
2026-05-11 14:29:16 +08:00

53 lines
2.9 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from sqlalchemy import BigInteger, Column, Date, Integer, SmallInteger, String, TIMESTAMP, Text, text
from sqlalchemy.dialects.postgresql import JSONB
from sqlalchemy.ext.declarative import declarative_base
from common.sqlSession import to_dict
Base = declarative_base()
Base.to_dict = to_dict
class TestPlan(Base):
__tablename__ = 'test_plan'
id = Column(BigInteger, primary_key=True, autoincrement=True, comment='id')
project_id = Column(BigInteger, nullable=False, comment='项目id')
name = Column(String(128), nullable=False, comment='计划名称')
version = Column(String(32), comment='测试版本')
description = Column(Text, comment='描述')
start_date = Column(Date, comment='开始日期')
end_date = Column(Date, comment='结束日期')
owner_id = Column(BigInteger, comment='负责人')
status = Column(SmallInteger, default=0, comment='0:草稿 1:进行中 2:已完成 3:已归档 4已通过')
environment_id = Column(BigInteger, comment='环境id')
jenkins_url = Column(String(512), comment='Jenkins构建URL')
is_auto = Column(SmallInteger, default=0, comment='是否自动化测试计划0-否1-是')
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 PlanCase(Base):
__tablename__ = 'plan_case'
id = Column(BigInteger, primary_key=True, autoincrement=True, comment='id')
plan_id = Column(BigInteger, nullable=False, comment='计划id')
case_id = Column(BigInteger, nullable=False, comment='用例id')
assignee_id = Column(BigInteger, comment='执行人')
round_no = Column(Integer, default=1, comment='执行轮次')
status = Column(SmallInteger, default=0, comment='0:未开始 1:通过 2:失败 3:阻塞')
actual_result = Column(Text, comment='实际结果')
defect_links = Column(JSONB, server_default=text("'[]'::jsonb"), comment='缺陷链接')
attachments = Column(JSONB, server_default=text("'[]'::jsonb"), comment='附件')
executed_time = Column(TIMESTAMP, comment='执行时间')
execution_duration = Column(Integer, comment='执行耗时')
role_name_map = {1: '测试经理', 2: '测试工程师', 3: '开发工程师', 4: '访客'}
class TestRound(Base):
__tablename__ = 'test_round'
id = Column(BigInteger, primary_key=True, autoincrement=True, comment='id')
plan_id = Column(BigInteger, nullable=False, comment='计划id')
round_no = Column(Integer, nullable=False, comment='轮次')
name = Column(String(64), comment='轮次名称')
start_date = Column(Date, comment='开始日期')
end_date = Column(Date, comment='结束日期')