- 删除破损文件: main.py/main.ui/main_ui.py - 删除 runtime_hook.py(归宿主维护),清除 tools/ 目录 - 合并 export_runtime/pack_zip/verify_companions 到 build_pyd.py - 修复注释: docstring 参数与实际签名不一致、过时引用、拼写错误 - 修复日志: 消除静默吞异常、删冗余 log+raise、补缺失日志 - 精简 .gitignore
124 lines
4.7 KiB
Python
124 lines
4.7 KiB
Python
import os
|
|
import logging
|
|
|
|
from PySide6.QtGui import *
|
|
from PySide6.QtCore import *
|
|
from PySide6.QtWidgets import *
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
from .mil_project_ui import Ui_FrameMILProject
|
|
from mil.core import Config
|
|
|
|
class MILProject(QFrame, Ui_FrameMILProject):
|
|
update_item_name_signal = Signal()
|
|
update_item_data_path_signal = Signal(str,str)
|
|
update_item_file_path_signal = Signal(str,str)
|
|
|
|
def __init__(self, config, name = None,parent = None):
|
|
super().__init__(parent)
|
|
self.setupUi(self)
|
|
|
|
self.initUI(config,name)
|
|
|
|
def initUI(self,config:Config, name:str):
|
|
self.lineEditDataPath.setReadOnly(True)
|
|
self.lineEditFilePath.setReadOnly(True)
|
|
|
|
self.name = name
|
|
self.config = config
|
|
self.ItemConfigs = config.ItemConfigs
|
|
|
|
if self.name is not None and self.name in self.ItemConfigs.keys():
|
|
self.lineEditName.setText(name)
|
|
self.lineEditDataPath.setText(self.ItemConfigs[self.name]["DataPath"])
|
|
self.lineEditFilePath.setText(self.ItemConfigs[self.name]["FilePath"])
|
|
else:
|
|
self.pushButtonDataPath.setEnabled(False)
|
|
self.pushButtonFilePath.setEnabled(False)
|
|
self.lineEditName.setPlaceholderText("必填项!!!")
|
|
self.lineEditDataPath.setPlaceholderText("点击【选择数据文件】按钮,选择路径!")
|
|
self.lineEditFilePath.setPlaceholderText("点击【选择测试用例】按钮,选择路径!")
|
|
|
|
self.lineEditName.editingFinished.connect(self.on_name_editing_finished_event)
|
|
self.lineEditDataPath.editingFinished.connect(self.on_datapath_editing_finished_event)
|
|
self.lineEditFilePath.editingFinished.connect(self.on_filepath_editing_finished_event)
|
|
|
|
self.pushButtonDataPath.clicked.connect(self.on_data_path_event)
|
|
self.pushButtonFilePath.clicked.connect(self.on_file_path_event)
|
|
|
|
def on_name_editing_finished_event(self):
|
|
name = self.lineEditName.text()
|
|
|
|
if name.replace(" ", "") == "":
|
|
self.lineEditName.setText(self.name)
|
|
logger.warning("项目名称是必填项!!!")
|
|
return
|
|
if name == self.name:
|
|
return
|
|
|
|
if self.name is None:
|
|
self.name = name
|
|
self.ItemConfigs[name] = dict()
|
|
self.ItemConfigs[name]["DataPath"] = ""
|
|
self.ItemConfigs[name]["FilePath"] = ""
|
|
else:
|
|
self.ItemConfigs[name] = self.ItemConfigs.pop(self.name)
|
|
if self.name == self.config.CurrProject:
|
|
self.config.CurrProject = name
|
|
self.name = name
|
|
|
|
self.config.save_config()
|
|
self.update_item_name_signal.emit()
|
|
self.pushButtonDataPath.setEnabled(True)
|
|
self.pushButtonFilePath.setEnabled(True)
|
|
|
|
def on_datapath_editing_finished_event(self):
|
|
name = self.lineEditName.text()
|
|
data_path = self.lineEditDataPath.text()
|
|
|
|
if data_path.replace(" ","") == "":
|
|
logger.warning("数据文件路径无效!")
|
|
return
|
|
|
|
self.ItemConfigs[name]["DataPath"] = data_path
|
|
self.config.save_config()
|
|
|
|
self.update_item_data_path_signal.emit(name,data_path)
|
|
|
|
def on_filepath_editing_finished_event(self):
|
|
name = self.lineEditName.text()
|
|
file_path = self.lineEditFilePath.text()
|
|
|
|
if file_path.replace(" ","") == "":
|
|
logger.warning("测试用例路径无效!")
|
|
return
|
|
|
|
self.ItemConfigs[name]["FilePath"] = file_path
|
|
self.config.save_config()
|
|
|
|
self.update_item_file_path_signal.emit(name,file_path)
|
|
|
|
def on_data_path_event(self):
|
|
dataPath = self.lineEditDataPath.text()
|
|
if os.path.exists(dataPath):
|
|
path,type = QFileDialog.getOpenFileName(self, "选择文件", dataPath,"Excel工作簿(*.xlsx)")
|
|
else:
|
|
path,type = QFileDialog.getOpenFileName(self, "选择文件", "./","Excel工作簿(*.xlsx)")
|
|
if not os.path.exists(path):
|
|
logger.debug(f"数据文件选择已取消: {dataPath}")
|
|
return
|
|
self.lineEditDataPath.setText(path)
|
|
self.on_datapath_editing_finished_event()
|
|
|
|
def on_file_path_event(self):
|
|
filePath = self.lineEditFilePath.text()
|
|
if os.path.exists(filePath):
|
|
path,type = QFileDialog.getOpenFileName(self, "选择文件", filePath,"Excel工作簿(*.xlsx)")
|
|
else:
|
|
path,type = QFileDialog.getOpenFileName(self, "选择文件", "./","Excel工作簿(*.xlsx)")
|
|
if not os.path.exists(path):
|
|
logger.debug(f"测试用例文件选择已取消: {filePath}")
|
|
return
|
|
self.lineEditFilePath.setText(path)
|
|
self.on_filepath_editing_finished_event() |