Changeset 625

Show
Ignore:
Timestamp:
09/18/08 11:18:52 (2 months ago)
Author:
laidler
Message:

Added handling of the subset flag; also added more duplicate-related bookkeeping

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/pysynphot/test/commissioning/basecase.py

    r621 r625  
    5050                  'SigThresh':self.sigthresh, 
    5151                  'SkyLines':self.hasSkyLines()} 
     52        try: 
     53            self.tda['Subset']=self.subset 
     54        except AttributeError: 
     55            pass 
    5256        self.tra={} 
    5357 
  • trunk/pysynphot/test/commissioning/gencases.py

    r622 r625  
    22import sys,os 
    33 
    4 def run(cmdfile): 
     4def run(cmdfile,subsetfile=None): 
    55    """ Generate TestCases from cmdfile according to the pattern in patternfile""" 
     6    #Define the test case pattern 
    67    pattern="""class %sCase%d(basecase.%sCase): 
    78    def setUp(self): 
    89        self.obsmode="%s" 
    910        self.spectrum="%s" 
     11        self.subset=%s 
    1012        self.setglobal(__file__) 
    1113        self.runpy()\n""" 
     14 
     15    #Process the subsetfile if present 
     16    subsetflag={} 
     17    if subsetfile is not None: 
     18        #Then this file contains a list of case names that should have a 
     19        #subset flag set. 
     20        f=open(subsetfile) 
     21        for line in f: 
     22            if not line.startswith('#') and len(line.strip())>0: 
     23                cols=line.strip().split() 
     24                subsetflag[cols[0]]=True 
     25        f.close() 
     26 
     27    #Open the main input and output files 
    1228    f=open(cmdfile) 
    1329    out=open(cmdfile.replace('.txt','.py'),'w') 
     
    1733""") 
    1834 
    19  
     35    #Set up some bookkeeping 
    2036    count={'countrate':0,'calcspec':0,'calcphot':0,'SpecSourcerateSpec':0,'thermback':0} 
    2137    dupcatcher={} 
    2238    dupcounter={'countrate':0,'calcspec':0,'calcphot':0,'SpecSourcerateSpec':0,'thermback':0} 
     39 
     40    #Now start the main loop 
    2341    for line in f: 
    2442     
     
    4159        except KeyError: 
    4260            kwd['spectrum']=None 
    43              
    44         defn=pattern%(cmd,count[cmd],cmd,obsmode,kwd['spectrum']) 
     61 
     62        #Construct the name and pattern 
     63        casename="%sCase%d"%(cmd,count[cmd]) 
    4564        ktuple=(cmd,obsmode,kwd['spectrum']) 
     65         
     66 
    4667         
    4768        if ktuple in dupcatcher: 
    4869           dupcounter[cmd]+=1 
     70           dupcatcher[ktuple].append(casename) 
    4971        else: 
    50            casename="%sCase%d"%(cmd,count[cmd]) 
    51            dupcatcher[ktuple]=casename 
     72           dupcatcher[ktuple]=[casename] 
     73           defn=pattern%(cmd,count[cmd],cmd,obsmode,kwd['spectrum'],subsetflag.get(casename,False)) 
    5274           out.write(defn) 
    5375 
     
    6486 
    6587    for k in count: 
    66         total= "%s:%d-%d=%d\n"%(k,count[k],dupcounter[k],count[k]-dupcounter[k]) 
     88        total= "#%s:%d-%d=%d\n"%(k,count[k],dupcounter[k],count[k]-dupcounter[k]) 
    6789        sys.stdout.write(total) 
    6890        out.write(total) 
    6991    out.close() 
     92    return dupcatcher 
    7093 
    7194if __name__ == '__main__': 
    72     run(sys.argv[1]) 
     95    dups = run(*sys.argv[1:])