refactor to use getattr mechanism rather than overriding every method individually
failing tests for other socket methods - as they call through to the real socket implementation, some raise exceptions that we don't care about in this instance. This could be fixed with mocking
add mock to requirements
test all delegated socket methods using mock