40 lines
796 B
Python
40 lines
796 B
Python
|
import unittest
|
||
|
|
||
|
import win32com.client
|
||
|
import win32com.server.util
|
||
|
import win32com.test.util
|
||
|
|
||
|
|
||
|
class Tester:
|
||
|
_public_methods_ = ["TestValue"]
|
||
|
|
||
|
def TestValue(self, v):
|
||
|
pass
|
||
|
|
||
|
|
||
|
def test_ob():
|
||
|
return win32com.client.Dispatch(win32com.server.util.wrap(Tester()))
|
||
|
|
||
|
|
||
|
class TestException(Exception):
|
||
|
pass
|
||
|
|
||
|
|
||
|
# The object we try and pass - pywin32 will call __float__ as a last resort.
|
||
|
class BadConversions:
|
||
|
def __float__(self):
|
||
|
raise TestException()
|
||
|
|
||
|
|
||
|
class TestCase(win32com.test.util.TestCase):
|
||
|
def test_float(self):
|
||
|
try:
|
||
|
test_ob().TestValue(BadConversions())
|
||
|
raise Exception("Should not have worked")
|
||
|
except Exception as e:
|
||
|
assert isinstance(e, TestException)
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
unittest.main()
|