import operator
import wx
import csv
,os
class UI_test_frame():
def __init__(self
):
self
.app
=wx
.App
()
self
.window
=wx
.Frame
(None,title
="测试框架",size
=(400,300))
self
.panel
=wx
.Panel
(self
.window
)
self
.filebq
=wx
.StaticText
(self
.panel
,label
="配置文件")
self
.filetxt
=wx
.TextCtrl
(self
.panel
,style
=wx
.TE_READONLY
)
self
.dakai
=wx
.Button
(self
.panel
,label
="打开")
self
.zhixing
=wx
.Button
(self
.panel
,label
="执行")
self
.chongzhi
=wx
.Button
(self
.panel
,label
="重置")
self
.tuichu
= wx
.Button
(self
.panel
,label
="退出")
def Box(self
):
boxsizer1
=wx
.BoxSizer
()
boxsizer1
.Add
(self
.filebq
,proportion
=2,flag
=wx
.ALL
,border
=10)
boxsizer1
.Add
(self
.filetxt
,proportion
=6,flag
=wx
.ALL
,border
=10)
boxsizer2
= wx
.BoxSizer
()
boxsizer2
.Add
(self
.dakai
,flag
=wx
.ALL
,border
=10)
boxsizer2
.Add
(self
.zhixing
,flag
=wx
.ALL
,border
=10)
boxsizer2
.Add
(self
.chongzhi
,flag
=wx
.ALL
,border
=10)
boxsizer2
.Add
(self
.tuichu
,flag
=wx
.ALL
,border
=10)
boxsizer3
=wx
.BoxSizer
(wx
.VERTICAL
)
boxsizer3
.Add
(boxsizer1
,flag
=wx
.TOP
|wx
.EXPAND
,border
=40)
boxsizer3
.Add
(boxsizer2
)
self
.panel
.SetSizer
(boxsizer3
)
def open_file(self
,event
):
self
.dlog
=wx
.FileDialog
(self
.panel
,message
="打开文件",wildcard
="*.csv",style
=wx
.FD_OPEN
)
if self
.dlog
.ShowModal
()==wx
.ID_OK
:
self
.filetxt
.AppendText
(self
.dlog
.GetPath
())
self
.config
=self
.dlog
.GetPath
()
def run_driver(self
,event
):
filetxt
=self
.filetxt
.GetValue
()
if filetxt
=="":
dlg
=wx
.MessageDialog
(None,"请输入文件名和路径","提示信息",wx
.YES_DEFAULT
|wx
.ICON_QUESTION
)
if dlg
.ShowModal
()==wx
.ID_YES
:
dlg
.Destroy
()
else:
driver_obj
=driver
()
driver_obj
.runtest
(self
.config
)
def clear(self
,event
):
self
.filetxt
.SetValue
("")
def exit(self
,event
):
self
.window
.Close
()
def event_bind(self
):
self
.dakai
.Bind
(wx
.EVT_BUTTON
, self
.open_file
)
self
.zhixing
.Bind
(wx
.EVT_BUTTON
, self
.run_driver
)
self
.chongzhi
.Bind
(wx
.EVT_BUTTON
,self
.clear
)
self
.tuichu
.Bind
(wx
.EVT_BUTTON
, self
.exit
)
def run(self
):
self
.window
.Show
()
self
.app
.MainLoop
()
class driver():
def runtest(self
,config
):
file=open(config
,"r")
table
=csv
.reader
(file)
header
=next(table
)
list=[]
line
=0
for row
in table
:
line
+=1
dic
={}
dic
["num"]=int(row
[3])
dic
[row
[1]] = row
[2]
list.append
(dic
)
list1
=sorted(list, key
=operator
.itemgetter
("num"))
for i
in range(0,line
):
n
=0
for j
in list1
[i
].items
():
n
+=1
if n
==2:
path
=j
[0]
state
=j
[1]
if state
=="yes":
strOS
=("python "+path
)
os
.system
(strOS
)
if __name__
== '__main__':
UI_test_frame_obj
=UI_test_frame
()
UI_test_frame_obj
.Box
()
UI_test_frame_obj
.event_bind
()
UI_test_frame_obj
.run
()
配置文件:
转载请注明原文地址:https://blackberry.8miu.com/read-2811.html