home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- import sys
- import win32com.server.util as win32com
- import win32com.test.util as win32com
- import win32com.client as win32com
- import traceback
- import pythoncom
- import pywintypes
- import winerror
- L = pywintypes.Unicode
- import unittest
- error = 'collection test error'
-
- def MakeEmptyEnum():
- o = win32com.server.util.wrap(win32com.server.util.Collection())
- return win32com.client.Dispatch(o)
-
-
- def MakeTestEnum():
- sub = win32com.server.util.wrap(win32com.server.util.Collection([
- 'Sub1',
- 2,
- 'Sub3']))
- o = win32com.server.util.wrap(win32com.server.util.Collection([
- 1,
- 'Two',
- 3,
- sub]))
- return win32com.client.Dispatch(o)
-
-
- def TestEnumAgainst(o, check):
- for i in range(len(check)):
- if o(i) != check[i]:
- raise error, 'Using default method gave the incorrect value - %s/%s' % (`o(i)`, `check[i]`)
- o(i) != check[i]
-
- for i in range(len(check)):
- if o.Item(i) != check[i]:
- raise error, 'Using Item method gave the incorrect value - %s/%s' % (`o(i)`, `check[i]`)
- o.Item(i) != check[i]
-
- cmp = []
- for s in o:
- cmp.append(s)
-
- if cmp[:len(check)] != check:
- raise error, 'Result after looping isnt correct - %s/%s' % (`cmp[:len(check)]`, `check`)
- cmp[:len(check)] != check
- for i in range(len(check)):
- if o[i] != check[i]:
- raise error, 'Using indexing gave the incorrect value'
- o[i] != check[i]
-
-
-
- def TestEnum(quiet = None):
- if quiet is None:
- quiet = '-v' not in sys.argv
-
- if not quiet:
- print 'Simple enum test'
-
- o = MakeTestEnum()
- check = [
- 1,
- 'Two',
- 3]
- TestEnumAgainst(o, check)
- if not quiet:
- print 'sub-collection test'
-
- sub = o[3]
- TestEnumAgainst(sub, [
- 'Sub1',
- 2,
- 'Sub3'])
- o.Remove(o.Count() - 1)
- if not quiet:
- print 'Remove item test'
-
- del check[1]
- o.Remove(1)
- TestEnumAgainst(o, check)
- if not quiet:
- print 'Add item test'
-
- o.Add('New Item')
- check.append('New Item')
- TestEnumAgainst(o, check)
- if not quiet:
- print 'Insert item test'
-
- o.Insert(2, -1)
- check.insert(2, -1)
- TestEnumAgainst(o, check)
-
- try:
- o()
- raise error, 'default method with no args worked when it shouldnt have!'
- except pythoncom.com_error:
- (hr, desc, exc, argErr) = None
- if hr != winerror.DISP_E_BADPARAMCOUNT:
- raise error, 'Expected DISP_E_BADPARAMCOUNT - got %d (%s)' % (hr, desc)
- hr != winerror.DISP_E_BADPARAMCOUNT
-
-
- try:
- o.Insert('foo', 2)
- raise error, 'Insert worked when it shouldnt have!'
- except pythoncom.com_error:
- (hr, desc, exc, argErr) = None
- if hr != winerror.DISP_E_TYPEMISMATCH:
- raise error, 'Expected DISP_E_TYPEMISMATCH - got %d (%s)' % (hr, desc)
- hr != winerror.DISP_E_TYPEMISMATCH
-
-
- try:
- o.Remove(o.Count())
- raise error, 'Remove worked when it shouldnt have!'
- except pythoncom.com_error:
- (hr, desc, exc, argErr) = None
- if hr != winerror.DISP_E_BADINDEX:
- raise error, 'Expected DISP_E_BADINDEX - got %d (%s)' % (hr, desc)
- hr != winerror.DISP_E_BADINDEX
-
- if not quiet:
- print 'Empty collection test'
-
- o = MakeEmptyEnum()
- for item in o:
- raise error, 'Empty list performed an iteration'
-
-
- try:
- ob = o[1]
- raise error, 'Empty list could be indexed'
- except IndexError:
- pass
-
-
- try:
- ob = o[0]
- raise error, 'Empty list could be indexed'
- except IndexError:
- pass
-
-
- try:
- ob = o(0)
- raise error, 'Empty list could be indexed'
- except pythoncom.com_error:
- (hr, fn, desc, arg) = None
- if hr != winerror.DISP_E_BADINDEX:
- raise error, 'Expected DISP_E_BADINDEX - got %d (%s)' % (hr, desc)
- hr != winerror.DISP_E_BADINDEX
-
-
-
- class TestCase(win32com.test.util.TestCase):
-
- def testEnum(self):
- TestEnum()
-
-
- if __name__ == '__main__':
- unittest.main()
-
-