home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- from __future__ import generators
- import sys
- import unittest
- from win32com.client.gencache import EnsureDispatch
- from win32com.client import Dispatch
- import win32com.server.util as win32com
- import win32com.test.util as win32com
- import pythoncom
-
- def yield_iter(iter):
- while None:
- yield iter.next()
- continue
- return None
-
-
- class _BaseTestCase(win32com.test.util.TestCase):
-
- def test_enumvariant_vb(self):
- (ob, iter) = self.iter_factory()
- got = []
- for v in iter:
- got.append(v)
-
- self.assertEquals(got, self.expected_data)
-
-
- def test_yield(self):
- (ob, i) = self.iter_factory()
- got = []
- for v in yield_iter(iter(i)):
- got.append(v)
-
- self.assertEquals(got, self.expected_data)
-
-
- def _do_test_nonenum(self, object):
-
- try:
- for i in object:
- pass
-
- self.fail('Could iterate over a non-iterable object')
- except TypeError:
- pass
-
- self.assertRaises(TypeError, iter, object)
- self.assertRaises(AttributeError, getattr, object, 'next')
-
-
- def test_nonenum_wrapper(self):
- ob = self.object._oleobj_
-
- try:
- for i in ob:
- pass
-
- self.fail('Could iterate over a non-iterable object')
- except TypeError:
- pass
-
- self.assertRaises(TypeError, iter, ob)
- self.assertRaises(AttributeError, getattr, ob, 'next')
- ob = self.object
-
- try:
- for i in ob:
- pass
-
- self.fail('Could iterate over a non-iterable object')
- except TypeError:
- pass
-
-
- try:
- iter(ob).next()
- self.fail('Expected a TypeError fetching this iterator')
- except TypeError:
- pass
-
- self.assertRaises(AttributeError, getattr, ob, 'next')
-
-
-
- class VBTestCase(_BaseTestCase):
-
- def setUp(self):
-
- def factory():
- ob = self.object.EnumerableCollectionProperty
- for i in self.expected_data:
- ob.Add(i)
-
- invkind = pythoncom.DISPATCH_METHOD | pythoncom.DISPATCH_PROPERTYGET
- iter = ob._oleobj_.InvokeTypes(pythoncom.DISPID_NEWENUM, 0, invkind, (13, 10), ())
- return (ob, iter.QueryInterface(pythoncom.IID_IEnumVARIANT))
-
- self.object = EnsureDispatch('PyCOMVBTest.Tester')
- self.expected_data = [
- 1,
- 'Two',
- '3']
- self.iter_factory = factory
-
-
- def tearDown(self):
- self.object = None
-
-
-
- class SomeObject:
- _public_methods_ = [
- 'GetCollection']
-
- def __init__(self, data):
- self.data = data
-
-
- def GetCollection(self):
- return win32com.server.util.NewCollection(self.data)
-
-
-
- class WrappedPythonCOMServerTestCase(_BaseTestCase):
-
- def setUp(self):
-
- def factory():
- ob = self.object.GetCollection()
- flags = pythoncom.DISPATCH_METHOD | pythoncom.DISPATCH_PROPERTYGET
- enum = ob._oleobj_.Invoke(pythoncom.DISPID_NEWENUM, 0, flags, 1)
- return (ob, enum.QueryInterface(pythoncom.IID_IEnumVARIANT))
-
- self.expected_data = [
- 1,
- 'Two',
- 3]
- sv = win32com.server.util.wrap(SomeObject(self.expected_data))
- self.object = Dispatch(sv)
- self.iter_factory = factory
-
-
- def tearDown(self):
- self.object = None
-
-
-
- def suite():
- suite = unittest.TestSuite()
- for item in globals().values():
- if type(item) == type(unittest.TestCase) and issubclass(item, unittest.TestCase) and item != _BaseTestCase:
- suite.addTest(unittest.makeSuite(item))
- continue
-
- return suite
-
- if __name__ == '__main__':
- unittest.main(argv = sys.argv + [
- 'suite'])
-
-