home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- import win32com.server.util as win32com
- import win32com.client as win32com
- import pythoncom
- import winerror
- import win32com.test.util as win32com
- import unittest
-
- class Error(Exception):
- pass
-
-
- class PythonSemanticClass:
- _public_methods_ = [
- 'In']
- _dispid_to_func_ = {
- 10: 'Add',
- 11: 'Remove' }
-
- def __init__(self):
- self.list = []
-
-
- def _NewEnum(self):
- return win32com.server.util.NewEnum(self.list)
-
-
- def _value_(self):
- return self.list
-
-
- def _Evaluate(self):
- return reduce((lambda a, b: a + b), self.list, 0)
-
-
- def In(self, value):
- return value in self.list
-
-
- def Add(self, value):
- self.list.append(value)
-
-
- def Remove(self, value):
- self.list.remove(value)
-
-
-
- def DispExTest(ob):
- if not __debug__:
- print 'WARNING: Tests dressed up as assertions are being skipped!'
-
- dispids = []
- dispid = -1
- while None:
-
- try:
- dispid = ob.GetNextDispID(0, dispid)
- dispids.append(dispid)
- continue
- except pythoncom.com_error:
- (hr, desc, exc, arg) = None
- break
- continue
-
-
- if dispids != [
- pythoncom.DISPID_EVALUATE,
- pythoncom.DISPID_NEWENUM,
- 10,
- 11,
- 1000]:
- raise Error, 'Got back the wrong dispids: %s' % dispids
- dispids != [
- pythoncom.DISPID_EVALUATE,
- pythoncom.DISPID_NEWENUM,
- 10,
- 11,
- 1000]
- return None
-
-
- def SemanticTest(ob):
- ob.Add(1)
- ob.Add(2)
- ob.Add(3)
- if ob() != (1, 2, 3):
- raise Error, 'Bad result - got %s' % `ob()`
- ob() != (1, 2, 3)
- dispob = ob._oleobj_
- rc = dispob.Invoke(pythoncom.DISPID_EVALUATE, 0, pythoncom.DISPATCH_METHOD | pythoncom.DISPATCH_PROPERTYGET, 1)
- if rc != 6:
- raise Error, 'Evaluate returned', rc
- rc != 6
-
-
- class Tester(win32com.test.util.TestCase):
-
- def setUp(self):
- debug = 0
- import win32com.server.dispatcher as win32com
- if debug:
- dispatcher = win32com.server.dispatcher.DefaultDebugDispatcher
- else:
- dispatcher = None
- disp = win32com.server.util.wrap(PythonSemanticClass(), useDispatcher = dispatcher)
- self.ob = win32com.client.Dispatch(disp)
-
-
- def tearDown(self):
- self.ob = None
-
-
- def testSemantics(self):
- SemanticTest(self.ob)
-
-
- def testIDispatchEx(self):
- dispexob = self.ob._oleobj_.QueryInterface(pythoncom.IID_IDispatchEx)
- DispExTest(dispexob)
-
-
- if __name__ == '__main__':
- unittest.main()
-
-