6.19.10.2.1.1. Implementation

Start python section to interscript/frames/inputf.py[7 /42 ] Next Prev First Last
   273: #line 327 "input_frame.ipk"
   274:   def interscript_from_options(self,*args):
   275:     "Run interscript from with the given command line options"
   276:     from interscript  import run_from_options
   277:     svdin  = sys.stdin
   278:     try:
   279:       try:
   280:         run_from_options(args)
   281:       except KeyboardInterrupt: raise
   282:       except SystemExit: raise
   283:       except:
   284:         print 'Error running embedded interscript from options'
   285:         print 'options were', args
   286:         traceback.print_exc()
   287:     finally:
   288:       sys.stdin  = svdin
   289: 
   290:   # Note: this routine is ONLY useful for testing interscript itself,
   291:   # because it always puts the test code into the interscript directory!
   292:   # This needs to be fixed!!!
   293: 
   294:   def test_interscript(self, description, source_terminator, *args, **kwds):
   295:     "Run interscript on the following embedded test script"
   296:     testno = self.register_test(description, 'interscript')
   297:     testlabel = 'test_'+str(testno)
   298:     self.set_anchor(testlabel)
   299:     self.current_weaver.writeline(
   300:       'On-the-fly interscript for test '+str(testno)+' follows.')
   301:     source_origin_line = self.original_count
   302:     source_origin_file = self.original_filename
   303:     test_code = self.collect_lines_upto(source_terminator)
   304:     self.current_weaver.script_head('interscript',source_origin_file)
   305:     for i in range(len(test_code)):
   306:       self.current_weaver.echotangle(source_origin_line+i+1,test_code[i])
   307:     self.current_weaver.script_foot('interscript',source_origin_file)
   308: 
   309:     try:
   310:       os.mkdir('interscript/tests')
   311:     except:
   312:       pass
   313:     our_source_filename = 'interscript/tests/test_'+str(testno)+'.tpk'
   314:     f = open(our_source_filename,'w')
   315:     f.write(string.join(test_code,'\n')+'\n')
   316:     f.close()
   317: 
   318:     logfile='interscript/tests/output/test_'+str(testno)+'.log'
   319: 
   320:     kargs =  []
   321:     for key in kwds.keys():
   322:       if key not in ['description','source_terminator']:
   323:         kargs.append('--' + key + '=' + repr(kwds[key]))
   324: 
   325:     newargs = args + tuple(kargs) + (
   326:       '--weaver=html',
   327:       '--weaver-prefix=interscript/tests/output/',
   328:       '--new-logfile='+logfile,
   329:       '--title=Test '+str(testno)+': '+description,
   330:       our_source_filename)
   331:     apply(self.interscript_from_options, newargs)
   332:     self.set_test_result(testno,'inspect')
   333:     self.current_weaver.doc()
   334:     self.current_weaver.writeline('Test output at')
   335:     self.current_weaver.cite_url('../tests/output/test_'+str(testno)+'.html')
   336:     self.current_weaver.writeline('. Logfile at')
   337:     self.current_weaver.cite_url('../tests/output/test_'+str(testno)+'.log')
   338:     self.current_weaver.writeline('.')
   339:     self.current_weaver.par()
   340: 
End python section to interscript/frames/inputf.py[7]