6.13.10.2.1.1. Implementation

Start python section to interscript/frames/inputf.py[6 /40 ] Next Prev Last
   222: #line 275 "input_frame.ipk"
   223:   def interscript_from_options(self,*args):
   224:     from interscript  import run_from_options
   225:     svdin  = sys.stdin
   226:     try:
   227:       try:
   228:         run_from_options(args)
   229:       except KeyboardInterrupt: raise
   230:       except SystemExit: raise
   231:       except:
   232:         print 'Error running embedded interscript from options'
   233:         print 'options were', args
   234:         traceback.print_exc()
   235:     finally:
   236:       sys.stdin  = svdin
   237: 
   238:   # Note: this routine is ONLY useful for testing interscript itself,
   239:   # because it always puts the test code into the interscript directory!
   240:   # This needs to be fixed!!!
   241: 
   242:   def test_interscript(self, description, source_terminator, *args, **kwds):
   243:     testno = self.register_test(description, 'interscript')
   244:     testlabel = 'test_'+str(testno)
   245:     self.set_anchor(testlabel)
   246:     self.current_weaver.writeline(
   247:       'On-the-fly interscript for test '+str(testno)+' follows.')
   248:     source_origin_line = self.original_count
   249:     source_origin_file = self.original_filename
   250:     test_code = self.collect_lines_upto(source_terminator)
   251:     self.current_weaver.script_head('interscript',source_origin_file)
   252:     for i in range(len(test_code)):
   253:       self.current_weaver.echotangle(source_origin_line+i+1,test_code[i])
   254:     self.current_weaver.script_foot('interscript',source_origin_file)
   255: 
   256:     try:
   257:       os.mkdir('interscript/tests')
   258:     except:
   259:       pass
   260:     our_source_filename = 'interscript/tests/test_'+str(testno)+'.tpk'
   261:     f = open(our_source_filename,'w')
   262:     f.write(string.join(test_code,'\n')+'\n')
   263:     f.close()
   264: 
   265:     logfile='interscript/tests/output/test_'+str(testno)+'.log'
   266: 
   267:     kargs =  []
   268:     for key in kwds.keys():
   269:       if key not in ['description','source_terminator']:
   270:         kargs.append('--' + key + '=' + repr(kwds[key]))
   271: 
   272:     newargs = args + tuple(kargs) + (
   273:       '--weaver=html',
   274:       '--weaver-prefix=interscript/tests/output/',
   275:       '--new-logfile='+logfile,
   276:       '--title=Test '+str(testno)+': '+description,
   277:       our_source_filename)
   278:     apply(self.interscript_from_options, newargs)
   279:     self.set_test_result(testno,'inspect')
   280:     self.current_weaver.doc()
   281:     self.current_weaver.writeline('Test output at')
   282:     self.current_weaver.cite_url('../tests/output/test_'+str(testno)+'.html')
   283:     self.current_weaver.writeline('. Logfile at')
   284:     self.current_weaver.cite_url('../tests/output/test_'+str(testno)+'.log')
   285:     self.current_weaver.writeline('.')
   286:     self.current_weaver.par()
   287: 
End python section to interscript/frames/inputf.py[6]