# # Generate scripts needed for serious testing! # import win32com, win32com.client.makepy import win32com.test import pythoncom import sys, os genList = [ ("msword8", "{00020905-0000-0000-C000-000000000046}",1033,8,0), ] genDir = "Generated4Test" def GetGenPath(): import win32api return os.path.join(win32api.GetFullPathName(win32com.test.__path__[0]), genDir) def GenerateFromRegistered(fname, *loadArgs): # tlb = apply(pythoncom.LoadRegTypeLib, loadArgs) genPath = GetGenPath() try: os.stat(genPath) except os.error: os.mkdir(genPath) # Ensure an __init__ exists. open(os.path.join(genPath, "__init__.py"), "w").close() print fname, ": generating -", f = open(os.path.join(genPath, fname + ".py"), "w") win32com.client.makepy.GenerateFromTypeLibSpec(loadArgs, f, bQuiet = 1, bGUIProgress = 1) f.close() print "compiling -", fullModName = "win32com.test.%s.%s" % (genDir, fname) exec "import " + fullModName # Inject the generated module as a top level module. sys.modules[fname] = sys.modules[fullModName] print "done" def GenerateAll(): for args in genList: try: GenerateFromRegistered(*args) except KeyboardInterrupt: print "** Interrupted ***" break except pythoncom.com_error: print "** Could not generate test code for ", args[0] def CleanAll(): print "Cleaning generated test scripts..." try: # Clear exceptions! 1/0 except: pass genPath = GetGenPath() for args in genList: try: name = args[0]+".py" os.unlink(os.path.join(genPath, name)) except os.error, details: if type(details)==type(()) and details[0]!=2: print "Could not deleted generated", name, details try: name = args[0]+".pyc" os.unlink(os.path.join(genPath, name)) except os.error, details: if type(details)==type(()) and details[0]!=2: print "Could not deleted generated", name, details try: os.unlink(os.path.join(genPath, "__init__.py")) except: pass try: os.unlink(os.path.join(genPath, "__init__.pyc")) except: pass try: os.rmdir(genPath) except os.error, details: print "Could not delete test directory -", details if __name__=='__main__': GenerateAll() CleanAll()