TDengine/test/new_test_framework/taostest/dataclass.py
WANG Xu 90bda4a857
refactor: test dir
Signed-off-by: WANG Xu <feici02@outlook.com>
2025-03-19 18:41:55 +08:00

72 lines
1.8 KiB
Python

import json
from dataclasses import dataclass
from typing import List, Any
import datetime
@dataclass
class CmdOption:
destroy: str = None
setup: str = None
server_pkg: str = None
client_pkg: str = None
use: str = None
concurrency: int = 1
group_files: List[str] = None
group_dirs: List[str] = None
cases: List[str] = None
tag: str = None
keep: str = False
reset: str = False
early_stop: bool = False
help: bool = None
version: bool = None
init: bool = None
prepare: str = None
tdcfg: dict = None
env_init: bool = False
containers: bool = False
rm_containers: bool = False
cmds: str = None
log_level = None
docker_network = None
swarm = None
disable_collection = None
disable_data_collection = None
uniform_dist = None
taostest_pkg = None
case_param = None
taosd_valgrind: bool = False
taosc_valgrind: bool = False
fast_write_param_list: list = None
stop: bool = False
class TaosJsonEncoder(json.JSONEncoder):
def default(self, o: Any) -> Any:
if isinstance(o, datetime.datetime):
return o.strftime("%Y-%m-%d %H:%M:%S.%f")
else:
super(TaosJsonEncoder, self).default(o)
@dataclass
class ResultLog:
case_group: str = ""
case_path: str = ""
author: str = None
tags: List[str] = None
desc: str = None
start_time: datetime.datetime = None
stop_time: datetime.datetime = None
elapse: float = None
success: bool = None
error_msg: str = ""
report: Any = None
def to_json(self):
if self.start_time and self.stop_time:
delta = self.stop_time - self.start_time
self.elapse = delta.seconds + delta.microseconds / 1000000
return json.dumps(self.__dict__, cls=TaosJsonEncoder, ensure_ascii=False)