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

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. from __future__ import generators
  5. import sys
  6. import unittest
  7. from win32com.client.gencache import EnsureDispatch
  8. from win32com.client import Dispatch
  9. import win32com.server.util as win32com
  10. import win32com.test.util as win32com
  11. import pythoncom
  12.  
  13. def yield_iter(iter):
  14.     while None:
  15.         yield iter.next()
  16.         continue
  17.         return None
  18.  
  19.  
  20. class _BaseTestCase(win32com.test.util.TestCase):
  21.     
  22.     def test_enumvariant_vb(self):
  23.         (ob, iter) = self.iter_factory()
  24.         got = []
  25.         for v in iter:
  26.             got.append(v)
  27.         
  28.         self.assertEquals(got, self.expected_data)
  29.  
  30.     
  31.     def test_yield(self):
  32.         (ob, i) = self.iter_factory()
  33.         got = []
  34.         for v in yield_iter(iter(i)):
  35.             got.append(v)
  36.         
  37.         self.assertEquals(got, self.expected_data)
  38.  
  39.     
  40.     def _do_test_nonenum(self, object):
  41.         
  42.         try:
  43.             for i in object:
  44.                 pass
  45.             
  46.             self.fail('Could iterate over a non-iterable object')
  47.         except TypeError:
  48.             pass
  49.  
  50.         self.assertRaises(TypeError, iter, object)
  51.         self.assertRaises(AttributeError, getattr, object, 'next')
  52.  
  53.     
  54.     def test_nonenum_wrapper(self):
  55.         ob = self.object._oleobj_
  56.         
  57.         try:
  58.             for i in ob:
  59.                 pass
  60.             
  61.             self.fail('Could iterate over a non-iterable object')
  62.         except TypeError:
  63.             pass
  64.  
  65.         self.assertRaises(TypeError, iter, ob)
  66.         self.assertRaises(AttributeError, getattr, ob, 'next')
  67.         ob = self.object
  68.         
  69.         try:
  70.             for i in ob:
  71.                 pass
  72.             
  73.             self.fail('Could iterate over a non-iterable object')
  74.         except TypeError:
  75.             pass
  76.  
  77.         
  78.         try:
  79.             iter(ob).next()
  80.             self.fail('Expected a TypeError fetching this iterator')
  81.         except TypeError:
  82.             pass
  83.  
  84.         self.assertRaises(AttributeError, getattr, ob, 'next')
  85.  
  86.  
  87.  
  88. class VBTestCase(_BaseTestCase):
  89.     
  90.     def setUp(self):
  91.         
  92.         def factory():
  93.             ob = self.object.EnumerableCollectionProperty
  94.             for i in self.expected_data:
  95.                 ob.Add(i)
  96.             
  97.             invkind = pythoncom.DISPATCH_METHOD | pythoncom.DISPATCH_PROPERTYGET
  98.             iter = ob._oleobj_.InvokeTypes(pythoncom.DISPID_NEWENUM, 0, invkind, (13, 10), ())
  99.             return (ob, iter.QueryInterface(pythoncom.IID_IEnumVARIANT))
  100.  
  101.         self.object = EnsureDispatch('PyCOMVBTest.Tester')
  102.         self.expected_data = [
  103.             1,
  104.             'Two',
  105.             '3']
  106.         self.iter_factory = factory
  107.  
  108.     
  109.     def tearDown(self):
  110.         self.object = None
  111.  
  112.  
  113.  
  114. class SomeObject:
  115.     _public_methods_ = [
  116.         'GetCollection']
  117.     
  118.     def __init__(self, data):
  119.         self.data = data
  120.  
  121.     
  122.     def GetCollection(self):
  123.         return win32com.server.util.NewCollection(self.data)
  124.  
  125.  
  126.  
  127. class WrappedPythonCOMServerTestCase(_BaseTestCase):
  128.     
  129.     def setUp(self):
  130.         
  131.         def factory():
  132.             ob = self.object.GetCollection()
  133.             flags = pythoncom.DISPATCH_METHOD | pythoncom.DISPATCH_PROPERTYGET
  134.             enum = ob._oleobj_.Invoke(pythoncom.DISPID_NEWENUM, 0, flags, 1)
  135.             return (ob, enum.QueryInterface(pythoncom.IID_IEnumVARIANT))
  136.  
  137.         self.expected_data = [
  138.             1,
  139.             'Two',
  140.             3]
  141.         sv = win32com.server.util.wrap(SomeObject(self.expected_data))
  142.         self.object = Dispatch(sv)
  143.         self.iter_factory = factory
  144.  
  145.     
  146.     def tearDown(self):
  147.         self.object = None
  148.  
  149.  
  150.  
  151. def suite():
  152.     suite = unittest.TestSuite()
  153.     for item in globals().values():
  154.         if type(item) == type(unittest.TestCase) and issubclass(item, unittest.TestCase) and item != _BaseTestCase:
  155.             suite.addTest(unittest.makeSuite(item))
  156.             continue
  157.     
  158.     return suite
  159.  
  160. if __name__ == '__main__':
  161.     unittest.main(argv = sys.argv + [
  162.         'suite'])
  163.  
  164.