123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #
- # 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 -", end=' ')
- f = open(os.path.join(genPath, fname + ".py"), "w")
- win32com.client.makepy.GenerateFromTypeLibSpec(loadArgs, f, bQuiet = 1, bGUIProgress = 1)
- f.close()
- print("compiling -", end=' ')
- 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 as 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 as 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 as details:
- print("Could not delete test directory -", details)
- if __name__=='__main__':
- GenerateAll()
- CleanAll()
|