Update of /cvsroot/pywin32/pywin32/com/win32com/test
In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv32229/test
Modified Files:
testAXScript.py testPippo.py testPyComTest.py testServers.py
util.py
Log Message:
Make the COM test suite friendlier when run under Vista
Index: testAXScript.py
===================================================================
RCS file: /cvsroot/pywin32/pywin32/com/win32com/test/testAXScript.py,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** testAXScript.py 10 Nov 2003 00:49:29 -0000 1.7
--- testAXScript.py 24 Nov 2008 22:21:48 -0000 1.8
***************
*** 15,19 ****
from util import RegisterPythonServer
self.verbose = verbose
! RegisterPythonServer(file, self.verbose)
def testHost(self):
--- 15,19 ----
from util import RegisterPythonServer
self.verbose = verbose
! RegisterPythonServer(file, 'python', verbose=self.verbose)
def testHost(self):
Index: testPippo.py
===================================================================
RCS file: /cvsroot/pywin32/pywin32/com/win32com/test/testPippo.py,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** testPippo.py 3 Jun 2007 13:27:02 -0000 1.4
--- testPippo.py 24 Nov 2008 22:21:48 -0000 1.5
***************
*** 7,13 ****
class PippoTester(unittest.TestCase):
def setUp(self):
! # register the server
import pippo_server
! pippo_server.main([pippo_server.__file__])
# create it.
self.object = Dispatch("Python.Test.Pippo")
--- 7,13 ----
class PippoTester(unittest.TestCase):
def setUp(self):
! from win32com.test.util import RegisterPythonServer
import pippo_server
! RegisterPythonServer(pippo_server.__file__, "Python.Test.Pippo")
# create it.
self.object = Dispatch("Python.Test.Pippo")
Index: util.py
===================================================================
RCS file: /cvsroot/pywin32/pywin32/com/win32com/test/util.py,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** util.py 11 Nov 2008 01:02:51 -0000 1.10
--- util.py 24 Nov 2008 22:21:48 -0000 1.11
***************
*** 1,3 ****
--- 1,4 ----
import sys, os
+ import _winreg
import win32api
import tempfile
***************
*** 22,26 ****
print "Warning - %d com gateway objects still alive" % c
! def RegisterPythonServer(filename, verbose=0):
cmd = '%s "%s" --unattended > nul 2>&1' % (win32api.GetModuleFileName(0), filename)
if verbose:
--- 23,71 ----
print "Warning - %d com gateway objects still alive" % c
! def RegisterPythonServer(filename, progids=None, verbose=0):
! if progids:
! if isinstance(progids, basestring):
! progids = [progids]
! # we know the CLSIDs we need, but we might not be an admin user
! # and otherwise unable to register them. So as long as the progids
! # exist and the DLL points at our version, assume it already is.
! why_not = None
! for progid in progids:
! try:
! clsid = pythoncom.MakeIID(progid)
! except pythoncom.com_error:
! # no progid - not registered.
! break
! # have a CLSID - open it.
! try:
! hk = _winreg.OpenKey(_winreg.HKEY_CLASSES_ROOT, "CLSID\\%s" % clsid)
! dll = _winreg.QueryValue(hk, "InprocServer32")
! except WindowsError:
! # no CLSID or InProcServer32 - not good!
! break
! if os.path.basename(dll) != os.path.basename(pythoncom.__file__):
! why_not = "%r is registered against a different Python version (%s)" % (progid, dll)
! break
! else:
! #print "Skipping registration of '%s' - already registered" % filename
! return
! # needs registration - see if its likely!
! try:
! from win32com.shell.shell import IsUserAnAdmin
! except ImportError:
! print "Can't import win32com.shell - no idea if you are an admin or not?"
! is_admin = False
! else:
! try:
! is_admin = IsUserAnAdmin()
! except pythoncom.com_error:
! # old, less-secure OS - assume *is* admin.
! is_admin = True
! if not is_admin:
! msg = "%r isn't registered, but I'm not an administrator who can register it." % progids[0]
! if why_not:
! msg += "\n(registration check failed as %s)" % why_not
! raise RuntimeError(msg)
! # so theoretically we are able to register it.
cmd = '%s "%s" --unattended > nul 2>&1' % (win32api.GetModuleFileName(0), filename)
if verbose:
Index: testServers.py
===================================================================
RCS file: /cvsroot/pywin32/pywin32/com/win32com/test/testServers.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** testServers.py 4 May 2004 07:01:44 -0000 1.5
--- testServers.py 24 Nov 2008 22:21:48 -0000 1.6
***************
*** 11,17 ****
def setUp(self):
# Ensure the correct version registered.
! from win32com.servers.interp import Interpreter
! import win32com.server.register
! win32com.server.register.RegisterClasses(Interpreter, quiet=1)
def _testInterp(self, interp):
--- 11,17 ----
def setUp(self):
# Ensure the correct version registered.
! from win32com.test.util import RegisterPythonServer
! from win32com.servers import interp
! RegisterPythonServer(interp.__file__, "Python.Interpreter")
def _testInterp(self, interp):
Index: testPyComTest.py
===================================================================
RCS file: /cvsroot/pywin32/pywin32/com/win32com/test/testPyComTest.py,v
retrieving revision 1.32
retrieving revision 1.33
diff -C2 -d -r1.32 -r1.33
*** testPyComTest.py 1 Jul 2008 00:11:57 -0000 1.32
--- testPyComTest.py 24 Nov 2008 22:21:48 -0000 1.33
***************
*** 15,19 ****
# This test uses a Python implemented COM server - ensure correctly registered.
! RegisterPythonServer(os.path.join(os.path.dirname(__file__), '..', "servers", "test_pycomtest.py"))
from win32com.client import gencache
--- 15,20 ----
# This test uses a Python implemented COM server - ensure correctly registered.
! RegisterPythonServer(os.path.join(os.path.dirname(__file__), '..', "servers", "test_pycomtest.py"),
! "PyCOMTest.PyCOMTest")
from win32com.client import gencache
|