IronLanguages/main — pull request #224 by fdanny (2014-09-20 14:19:57+00:00)
Title: address issue #17894 with the close method. I tested against test_socket...

I notice when a _fileobject is created it check is a typeof socket if it is not that type it wraps it around PythonUserSocketStream and implicitly the _socket is set to null, I change that to be explicit.

The change is on the close method if _socket is null check if the stream is not null and not closed, indicating that the PythonUserSocketStream is being use. If so call that close method.

I then check in the PYthonUserSocketStream if the userSocket has a close method, if so call it.

The other change _isOpen is set to false if a None object is passed in, this is the same behavior has CPython. I had to do it after the base.__init__ since it hard coded to always set _isOpen to true

I tested this against the test_socket_cpy and urllib2 and it passed.