You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.4 KiB
53 lines
1.4 KiB
import unittest
|
|
|
|
import comtypes
|
|
import comtypes.client
|
|
|
|
import comtypes.test
|
|
comtypes.test.requires("ui")
|
|
|
|
class Test(unittest.TestCase):
|
|
def tearDown(self):
|
|
if hasattr(self, "w1"):
|
|
self.w1.Quit()
|
|
del self.w1
|
|
|
|
|
|
def test(self):
|
|
try:
|
|
comtypes.client.GetActiveObject("Word.Application")
|
|
except WindowsError:
|
|
pass
|
|
else:
|
|
# seems word is running, we cannot test this.
|
|
self.fail("MSWord is running, cannot test")
|
|
|
|
# create a WORD instance
|
|
self.w1 = w1 = comtypes.client.CreateObject("Word.Application")
|
|
# connect to the running instance
|
|
w2 = comtypes.client.GetActiveObject("Word.Application")
|
|
|
|
# check if they are referring to the same object
|
|
self.assertEqual(w1.QueryInterface(comtypes.IUnknown),
|
|
w2.QueryInterface(comtypes.IUnknown))
|
|
|
|
w1.Quit()
|
|
del self.w1
|
|
|
|
import time
|
|
time.sleep(1)
|
|
|
|
try:
|
|
w2.Visible
|
|
except comtypes.COMError as err:
|
|
variables = err.hresult, err.text, err.details
|
|
self.assertEqual(variables, err[:])
|
|
else:
|
|
raise AssertionError("COMError not raised")
|
|
|
|
self.assertRaises(WindowsError, comtypes.client.GetActiveObject, "Word.Application")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|