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

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import win32com.server.util as win32com
  5. import win32com.client as win32com
  6. import pythoncom
  7. import winerror
  8. import win32com.test.util as win32com
  9. import unittest
  10.  
  11. class Error(Exception):
  12.     pass
  13.  
  14.  
  15. class PythonSemanticClass:
  16.     _public_methods_ = [
  17.         'In']
  18.     _dispid_to_func_ = {
  19.         10: 'Add',
  20.         11: 'Remove' }
  21.     
  22.     def __init__(self):
  23.         self.list = []
  24.  
  25.     
  26.     def _NewEnum(self):
  27.         return win32com.server.util.NewEnum(self.list)
  28.  
  29.     
  30.     def _value_(self):
  31.         return self.list
  32.  
  33.     
  34.     def _Evaluate(self):
  35.         return reduce((lambda a, b: a + b), self.list, 0)
  36.  
  37.     
  38.     def In(self, value):
  39.         return value in self.list
  40.  
  41.     
  42.     def Add(self, value):
  43.         self.list.append(value)
  44.  
  45.     
  46.     def Remove(self, value):
  47.         self.list.remove(value)
  48.  
  49.  
  50.  
  51. def DispExTest(ob):
  52.     if not __debug__:
  53.         print 'WARNING: Tests dressed up as assertions are being skipped!'
  54.     
  55.     dispids = []
  56.     dispid = -1
  57.     while None:
  58.         
  59.         try:
  60.             dispid = ob.GetNextDispID(0, dispid)
  61.             dispids.append(dispid)
  62.         continue
  63.         except pythoncom.com_error:
  64.             (hr, desc, exc, arg) = None
  65.             break
  66.             continue
  67.         
  68.  
  69.         if dispids != [
  70.             pythoncom.DISPID_EVALUATE,
  71.             pythoncom.DISPID_NEWENUM,
  72.             10,
  73.             11,
  74.             1000]:
  75.             raise Error, 'Got back the wrong dispids: %s' % dispids
  76.         dispids != [
  77.             pythoncom.DISPID_EVALUATE,
  78.             pythoncom.DISPID_NEWENUM,
  79.             10,
  80.             11,
  81.             1000]
  82.         return None
  83.  
  84.  
  85. def SemanticTest(ob):
  86.     ob.Add(1)
  87.     ob.Add(2)
  88.     ob.Add(3)
  89.     if ob() != (1, 2, 3):
  90.         raise Error, 'Bad result - got %s' % `ob()`
  91.     ob() != (1, 2, 3)
  92.     dispob = ob._oleobj_
  93.     rc = dispob.Invoke(pythoncom.DISPID_EVALUATE, 0, pythoncom.DISPATCH_METHOD | pythoncom.DISPATCH_PROPERTYGET, 1)
  94.     if rc != 6:
  95.         raise Error, 'Evaluate returned', rc
  96.     rc != 6
  97.  
  98.  
  99. class Tester(win32com.test.util.TestCase):
  100.     
  101.     def setUp(self):
  102.         debug = 0
  103.         import win32com.server.dispatcher as win32com
  104.         if debug:
  105.             dispatcher = win32com.server.dispatcher.DefaultDebugDispatcher
  106.         else:
  107.             dispatcher = None
  108.         disp = win32com.server.util.wrap(PythonSemanticClass(), useDispatcher = dispatcher)
  109.         self.ob = win32com.client.Dispatch(disp)
  110.  
  111.     
  112.     def tearDown(self):
  113.         self.ob = None
  114.  
  115.     
  116.     def testSemantics(self):
  117.         SemanticTest(self.ob)
  118.  
  119.     
  120.     def testIDispatchEx(self):
  121.         dispexob = self.ob._oleobj_.QueryInterface(pythoncom.IID_IDispatchEx)
  122.         DispExTest(dispexob)
  123.  
  124.  
  125. if __name__ == '__main__':
  126.     unittest.main()
  127.  
  128.