testReport.py

Go to the documentation of this file.
00001 #!/usr/local/bin/python
00002 #
00003 #                               Copyright 2002
00004 #                                     by
00005 #                        The Board of Trustees of the
00006 #                     Leland Stanford Junior University.
00007 #                            All rights reserved.
00008 #
00009 
00010 __facility__ = "Online"
00011 __abstract__ = "V&V test for rcTestReport class"
00012 __author__   = "S. Tuvi <Stuvi@SLAC.Stanford.edu> SLAC - GLAST LAT I&T/Online"
00013 __date__     = "2006/01/03 00:08:27"
00014 __updated__  = "$Date: 2006/01/24 19:57:15 $"
00015 __version__  = "$Revision: 1.1 $"
00016 __release__  = "$Name: HEAD $"
00017 __credits__  = "SLAC"
00018 
00019 import LICOS.copyright_SLAC
00020 
00021 import logging       as     log
00022 import time
00023 import os
00024 
00025 from LICOS.lib.LATconstants                import *
00026 from LICOS.lib.scriptEngine.seAppBase      import seAppBase
00027 from LICOS.lib.testReport.rcTestReport     import rcTestReport
00028 
00029 #  Example application implementation.
00030 #  Note that the name of the class must be userApplication.
00031 #  Look at rcTransitions for names of other transition methods that can be used.
00032 class testReport(seAppBase):
00033   "Implementation class for a user application"
00034   def __init__(self, common):
00035     seAppBase.__init__(self, common)
00036     log.debug("userApplication.__init__()")
00037     self.tr = rcTestReport()
00038 
00039   def setup(self):
00040     log.debug("userApplication.setup()")
00041     # A state transition can be rejected by not returning None
00042     return None
00043 
00044   def startRun(self):
00045     log.debug("userApplication.startRun()")
00046     # A state transition can be rejected by not returning None
00047     return None
00048 
00049   def stopRun(self):
00050     log.debug("userApplication.stopRun()")
00051     self.setCompletionStatus(self.COMPL_STATUS_PASSED)
00052     self.createTestReport()
00053     # The STOP_RUN transition can not be rejected
00054 
00055   def createTestReport(self):
00056     tr = self.tr
00057     tr.initReport(title='CAL System Test Procedure')
00058     tr.addHTML("""
00059       <STYLE TYPE="text/css">
00060         H1 { font-size: x-large; color: red }
00061         H2 { font-size: large; color: blue }
00062         H3 { font-size: medium; color: blue }
00063       </STYLE>
00064     """)
00065     tr.addHeading('CALF_SUPP_P02')
00066     tr.addHeading('System Test Procedure Report')
00067     tr.addHeading('Sat May 31, 2003 18:01:46 Eastern Daylight Time')
00068     versions = tr.addSection('Versions')
00069     tr.addSectionItem(versions, 'Release', 'P01-06-00')
00070     verTable = tr.addSectionTable(versions, border='1', width='25%')
00071     tr.addTableHeader(verTable, '<i>Module</i>', 'left')
00072     tr.addTableHeader(verTable, '<i>Version</i>', 'right')
00073     tr.beginTableRow(verTable)
00074     tr.addTableData('GAEM', align='left')
00075     tr.addTableData('2.0.1.0', align='right')
00076     tr.beginTableRow(verTable)
00077     tr.addTableData('GGLT', align='left')
00078     tr.addTableData('1.3.1.0', align='right')
00079     tr.addSectionItem(versions, 'Verification failed on', 'cmdCli, evtCli')
00080     assocFiles = tr.addSection('Associated Files')
00081     tr.addSectionItem(assocFiles,
00082                       'Snapshot File',
00083                       '../snapshots/030531180141_calf_supp_p02.xml',
00084                       'http://archsys/snapshots/030531180141_calf_supp_p02.xml'
00085                     )
00086     tr.addSectionItem(assocFiles,
00087                       'Event File',
00088                       '../Event Collections/030531180141_calf_supp_p02.ced',
00089                       'http://archsys/Event Collections/030531180141_calf_supp_p02.ced'
00090                     )
00091 
00092     runp = tr.addSection('Run Parameters')
00093     tr.addSectionItem(runp, 'Number of Charge Injection events per setting', '500')
00094     tr.addSectionItem(runp, 'Charge Injection setting', '100')
00095     tr.addSectionItem(runp, 'Tack Delay Setting(timed readout delay)', '56')
00096     tr.addSectionItem(runp, 'CAL Bias DAC setting', '0x15800')
00097     tr.addSectionItem(runp, 'LE Gain setting', '5')
00098     tr.addSectionItem(runp, 'LE Gain setting', '13')
00099     tr.addSectionImage(runp, 'Test Image', './CALreport.png')
00100     laset = tr.addSection('Log Accept DAC Settings')
00101     dsTable = tr.addSectionTable(laset, border='1', width='100%')
00102     for hdr in ('Row', 'Lg0', 'Lg1', 'Lg2', 'Lg3', 'Lg4', 'Lg5', 'Lg6', 'Lg7', 'Lg8', 'Lg9', 'Lg10', 'Lg11'):
00103       tr.addTableHeader(dsTable, hdr, align='left')
00104     for data in [('X0' ,17,0,0,13,16,20,23,16,2,0,3,18),
00105                 ('X0+',18,28,15,16,8,6,16,7,11,32,0,6)
00106                 ]:
00107       tr.beginTableRow(dsTable)
00108       for d in data:
00109         tr.addTableData(d, align='left', width='7%')
00110     corNrgThr = tr.addSection('Corresponding Energy Thresholds(Mev)')
00111     ntTable = tr.addSectionTable(corNrgThr, border='1', width='100%')
00112     for hdr in ('Row', 'Lg0', 'Lg1', 'Lg2', 'Lg3', 'Lg4', 'Lg5', 'Lg6', 'Lg7', 'Lg8', 'Lg9', 'Lg10', 'Lg11'):
00113       tr.addTableHeader(ntTable, hdr, align='left')
00114     for data in [('X0' ,0.76,1.58,1.71,0.58,0.62,0.57,0.48,0.78,0.58,1.82,0.44,1.01),
00115                 ('X0+',0.75,0.66,1.14,0.65,0.36,0.63,0.62,0.93,0.61,0.58,3.83,0.50)
00116                 ]:
00117       tr.beginTableRow(ntTable)
00118       for d in data:
00119         if d > 1.0:
00120           d = '<b>' + str(d) + '</b>'
00121         else:
00122           d = str(d)
00123         tr.addTableData("<u>"+d+"</u>", align='left', width='7%')
00124     tr.addHTML('<b>BOLD</b> indicates energy thresholds above 1 Mev', section=corNrgThr)
00125     sumPage = tr.addSection('Summary Page', insert=0)
00126     tr.addSectionItem(sumPage, 'Test Description', 'Determine nominal log accept DAC settings')
00127     tr.addSectionItem(sumPage, 'Operator', 'johnson')
00128     tr.addSectionItem(sumPage, 'Schema', 'EM AFEE boards SN# X-001, X-002, Y-001, Y-002')
00129     tr.addSectionItem(sumPage, 'Configuration', 'calf_supp_p02.xml version:0.1')
00130     tr.addSectionItem(sumPage, 'Test Start Time', 'Sat May 31, 2003 18:01:46 Eastern Daylight Time')
00131     tr.addSectionItem(sumPage, 'Test End Time', 'Sat May 31, 2003 18:04:12 Eastern Daylight Time')
00132     tr.addSectionItem(sumPage, 'Test Start AFEEoTo Temp', '25.13C')
00133     tr.addSectionItem(sumPage, 'Test Stop AFEEoTo Temp', '25.17C')
00134     tr.addSectionItem(sumPage, 'Status', 'PASSED')
00135     tr.addSectionItem(sumPage, 'Notes', '')
00136     tr.insertSection(sumPage, versions)
00137     log.debug("Generating test report...")
00138     testReportFile = os.path.join(self.prefs["reportdir"],
00139                                   '%s_%s.html' % (self.getName(), self.runId))
00140     tr.transformToFile(LICOS_TEST_REPORT_XSL, testReportFile)
00141     self.addExportedFile(testReportFile, delete=True)

Generated on Thu Apr 27 20:52:44 2006 for LICOS L02-01-00 by doxygen 1.4.6-NO