With all due respect, It looks like you guys are not quite correct!
I can use duck typing as said, but there is a way to do what I intended to do in the first place:
from http://docs.python.org/dev/library/unittest.mock.html
Mock objects that use a class or an instance as a spec or spec_set are able to pass isintance tests:
>>>
>>> mock = Mock(spec=SomeClass)
>>> isinstance(mock, SomeClass)
True
>>> mock = Mock(spec_set=SomeClass())
>>> isinstance(mock, SomeClass)
True
so my example code would be like:
m = mock.MagicMock(spec=bpgsql.Connection)
isinstance(m, bpgsql.Connection)
this returns True
All that said, I am not arguing for strict type checking in python, I say if you need to check it you can do it and it works with testing and mocking too.