49 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
'''GuiSession builds TestReport instances and sends them to tkgui.Manager'''
 | 
						|
import py
 | 
						|
from util import TestReport
 | 
						|
from py.__.test.session import Session
 | 
						|
 | 
						|
class TkinterSession(Session):
 | 
						|
 | 
						|
    def __init__(self, config = None, channel = None):
 | 
						|
        super(ReportSession, self).__init__(config)
 | 
						|
        self.channel = channel
 | 
						|
        self.reportlist = []
 | 
						|
        
 | 
						|
    def header(self, colitems):
 | 
						|
        super(ReportSession, self).header(colitems)
 | 
						|
        report = TestReport()
 | 
						|
        report.settime()
 | 
						|
        self.reportlist = [report]
 | 
						|
        self.sendreport(report)
 | 
						|
        
 | 
						|
    def footer(self, colitems):
 | 
						|
        super(ReportSession, self).footer(colitems)
 | 
						|
        report = self.reportlist.pop()
 | 
						|
        report.settime()
 | 
						|
        self.sendreport(report)
 | 
						|
        self.channel.send(None)
 | 
						|
 | 
						|
    def start(self, colitem):
 | 
						|
        super(ReportSession, self).start(colitem)
 | 
						|
        report = TestReport()
 | 
						|
        report.start(colitem)
 | 
						|
        self.reportlist.append(report)
 | 
						|
        self.sendreport(report)
 | 
						|
 | 
						|
    def finish(self, colitem, outcome):
 | 
						|
        super(ReportSession, self).finish(colitem, outcome)
 | 
						|
        colitem.finishcapture()
 | 
						|
        colitem.finishcapture()
 | 
						|
        report = self.reportlist.pop()
 | 
						|
        report.finish(colitem, outcome, self.config)
 | 
						|
        self.reportlist[-1].status.update(report.status)
 | 
						|
        self.sendreport(report)
 | 
						|
        #py.std.time.sleep(0.5)
 | 
						|
        
 | 
						|
    def sendreport(self, report):
 | 
						|
        self.channel.send(report.to_channel())
 | 
						|
 | 
						|
ReportSession = TkinterSession
 | 
						|
 |