def TestObjectSemantics(ob):
# a convenient place to test some of our equality semantics
assert ob==ob._oleobj_
assert not ob!=ob._oleobj_
# same test again, but lhs and rhs reversed.
assert ob._oleobj_==ob
assert not ob._oleobj_!=ob
# same tests but against different pointers. COM identity rules should
# still ensure all works
assert ob._oleobj_==ob._oleobj_.QueryInterface(pythoncom.IID_IUnknown)
assert not ob._oleobj_!=ob._oleobj_.QueryInterface(pythoncom.IID_IUnknown)
assert ob._oleobj_!=None
assert None!=ob._oleobj_
assert ob!=None
assert None!=ob
if sys.version_info > (3,0):
try:
ob < None
raise error("Expected type error")
except TypeError:
pass
try:
None < ob
raise error("Expected type error")
except TypeError:
pass
assert ob._oleobj_.QueryInterface(pythoncom.IID_IUnknown)==ob._oleobj_
assert not ob._oleobj_.QueryInterface(pythoncom.IID_IUnknown)!=ob._oleobj_
assert ob._oleobj_==ob._oleobj_.QueryInterface(pythoncom.IID_IDispatch)
assert not ob._oleobj_!=ob._oleobj_.QueryInterface(pythoncom.IID_IDispatch)
assert ob._oleobj_.QueryInterface(pythoncom.IID_IDispatch)==ob._oleobj_
assert not ob._oleobj_.QueryInterface(pythoncom.IID_IDispatch)!=ob._oleobj_
print "Object semantic tests passed"
评论列表
文章目录