openmedialibrary_platform_w.../Lib/site-packages/win32com/test/testPippo.py
2016-04-14 21:54:42 +02:00

55 lines
1.9 KiB
Python

import sys
import unittest
import pythoncom
from win32com.client import Dispatch
from win32com.client.gencache import EnsureDispatch
class PippoTester(unittest.TestCase):
def setUp(self):
from win32com.test.util import RegisterPythonServer
from win32com.test import pippo_server
RegisterPythonServer(pippo_server.__file__, "Python.Test.Pippo")
# create it.
self.object = Dispatch("Python.Test.Pippo")
def testLeaks(self):
try:
gtrc = sys.gettotalrefcount
except AttributeError:
print("Please run this with python_d for leak tests")
gtrc = lambda: 0
# note creating self.object() should have consumed our "one time" leaks
self.object.Method1()
start = gtrc()
for i in range(1000):
object = Dispatch("Python.Test.Pippo")
object.Method1()
object = None
end = gtrc()
if end-start > 5:
self.fail("We lost %d references!" % (end-start,))
def testResults(self):
rc, out1 = self.object.Method2(123, 111)
self.failUnlessEqual(rc, 123)
self.failUnlessEqual(out1, 222)
def testLeaksGencache(self):
try:
gtrc = sys.gettotalrefcount
except AttributeError:
print("Please run this with python_d for leak tests")
gtrc = lambda: 0
# note creating self.object() should have consumed our "one time" leaks
object = EnsureDispatch("Python.Test.Pippo")
start = gtrc()
for i in range(1000):
object = EnsureDispatch("Python.Test.Pippo")
object.Method1()
object = None
end = gtrc()
if end-start > 10:
self.fail("We lost %d references!" % (end-start,))
if __name__=='__main__':
unittest.main()