home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_2580 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  4.2 KB  |  124 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import sys
  5. import os
  6. import unittest
  7. ui_demos = 'GetSaveFileName print_desktop win32cred_demo win32gui_demo\n              win32gui_dialog win32gui_menu win32gui_taskbar\n              win32rcparser_demo winprocess win32console_demo'.split()
  8. bad_demos = 'cerapi desktopmanager win32comport_demo'.split()
  9. argvs = {
  10.     'rastest': ('-l',) }
  11. ok_exceptions = {
  12.     'RegCreateKeyTransacted': 'NotImplementedError' }
  13.  
  14. class TestRunner:
  15.     
  16.     def __init__(self, argv):
  17.         self.argv = argv
  18.  
  19.     
  20.     def __call__(self):
  21.         (fin, fout, ferr) = os.popen3(' '.join(self.argv))
  22.         fin.close()
  23.         output = fout.read() + ferr.read()
  24.         fout.close()
  25.         rc = ferr.close()
  26.         if rc:
  27.             base = os.path.basename(self.argv[1])
  28.             raise AssertionError, '%s failed with exit code %s.  Output is:\n%s' % (base, rc, output)
  29.         rc
  30.  
  31.  
  32.  
  33. def get_demo_tests():
  34.     import win32api
  35.     ret = []
  36.     demo_dir = os.path.abspath(os.path.join(os.path.dirname(win32api.__file__), 'Demos'))
  37.     for name in os.listdir(demo_dir):
  38.         (base, ext) = os.path.splitext(name)
  39.         if ext != '.py' and base in ui_demos or base in bad_demos:
  40.             continue
  41.         
  42.         if base in ok_exceptions:
  43.             print "Ack - can't handle test %s - can't catch specific exceptions" % (base,)
  44.             continue
  45.         
  46.         argv = (sys.executable, os.path.join(demo_dir, base + '.py')) + argvs.get(base, ())
  47.         ret.append(unittest.FunctionTestCase(TestRunner(argv), description = 'win32/demos/' + name))
  48.     
  49.     return ret
  50.  
  51.  
  52. def import_all():
  53.     
  54.     try:
  55.         import win32ui
  56.     except ImportError:
  57.         pass
  58.  
  59.     import win32api
  60.     dir = os.path.dirname(win32api.__file__)
  61.     num = 0
  62.     is_debug = os.path.basename(win32api.__file__).endswith('_d')
  63.     for name in os.listdir(dir):
  64.         (base, ext) = os.path.splitext(name)
  65.         if ext == '.pyd' and name != '_winxptheme.pyd':
  66.             if (is_debug or base.endswith('_d') or not is_debug) and not base.endswith('_d'):
  67.                 
  68.                 try:
  69.                     __import__(base)
  70.                 except ImportError:
  71.                     print 'FAILED to import', name
  72.                     raise 
  73.  
  74.                 num += 1
  75.                 continue
  76.     
  77.  
  78.  
  79. def suite():
  80.     
  81.     try:
  82.         me = __file__
  83.     except NameError:
  84.         me = sys.argv[0]
  85.  
  86.     me = os.path.abspath(me)
  87.     files = os.listdir(os.path.dirname(me))
  88.     suite = unittest.TestSuite()
  89.     suite.addTest(unittest.FunctionTestCase(import_all))
  90.     for file in files:
  91.         (base, ext) = os.path.splitext(file)
  92.         if ext == '.py' and os.path.basename(me) != file:
  93.             
  94.             try:
  95.                 mod = __import__(base)
  96.             except ImportError:
  97.                 why = None
  98.                 print 'FAILED to import test module'
  99.                 print why
  100.                 continue
  101.  
  102.             if hasattr(mod, 'suite'):
  103.                 test = mod.suite()
  104.             else:
  105.                 test = unittest.defaultTestLoader.loadTestsFromModule(mod)
  106.             suite.addTest(test)
  107.             continue
  108.     
  109.     for test in get_demo_tests():
  110.         suite.addTest(test)
  111.     
  112.     return suite
  113.  
  114.  
  115. class CustomLoader(unittest.TestLoader):
  116.     
  117.     def loadTestsFromModule(self, module):
  118.         return suite()
  119.  
  120.  
  121. if __name__ == '__main__':
  122.     unittest.TestProgram(testLoader = CustomLoader())(argv = sys.argv)
  123.  
  124.