feat: 增加伴生包加载器、manifest配置,Excel处理优化
This commit is contained in:
@@ -0,0 +1,122 @@
|
||||
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):
|
||||
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):
|
||||
return
|
||||
self.lineEditFilePath.setText(path)
|
||||
self.on_filepath_editing_finished_event()
|
||||
Reference in New Issue
Block a user