51 lines
2.7 KiB
Python
51 lines
2.7 KiB
Python
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')
|
||
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='结束日期')
|