Correct API design mistake from rev. 43126: make socket attributes readonly properties.
This commit is contained in:
parent
9ca8789ee3
commit
bb03ac0dae
|
@ -654,21 +654,6 @@ Note that the \method{connect()} operation is subject to the timeout
|
|||
setting, and in general it is recommended to call
|
||||
\method{settimeout()} before calling \method{connect()}.
|
||||
|
||||
\begin{methoddesc}[socket]{getfamily}{}
|
||||
Return the socket family, as given to the \class{socket} constructor.
|
||||
\versionadded{2.5}
|
||||
\end{methoddesc}
|
||||
|
||||
\begin{methoddesc}[socket]{gettype}{}
|
||||
Return the socket type, as given to the \class{socket} constructor.
|
||||
\versionadded{2.5}
|
||||
\end{methoddesc}
|
||||
|
||||
\begin{methoddesc}[socket]{getproto}{}
|
||||
Return the socket protocol, as given to the \class{socket} constructor.
|
||||
\versionadded{2.5}
|
||||
\end{methoddesc}
|
||||
|
||||
\begin{methoddesc}[socket]{setsockopt}{level, optname, value}
|
||||
Set the value of the given socket option (see the \UNIX{} manual page
|
||||
\manpage{setsockopt}{2}). The needed symbolic constants are defined in
|
||||
|
@ -692,6 +677,25 @@ use \method{recv()} and \method{send()} without \var{flags} argument
|
|||
instead.
|
||||
|
||||
|
||||
Socket objects also have these (read-only) attributes that correspond
|
||||
to the values given to the \class{socket} constructor.
|
||||
|
||||
\begin{memberdesc}[socket]{family}
|
||||
The socket family.
|
||||
\versionadded{2.5}
|
||||
\end{memberdesc}
|
||||
|
||||
\begin{memberdesc}[socket]{type}
|
||||
The socket type.
|
||||
\versionadded{2.5}
|
||||
\end{memberdesc}
|
||||
|
||||
\begin{memberdesc}[socket]{proto}
|
||||
The socket protocol.
|
||||
\versionadded{2.5}
|
||||
\end{memberdesc}
|
||||
|
||||
|
||||
\subsection{SSL Objects \label{ssl-objects}}
|
||||
|
||||
SSL objects have the following methods.
|
||||
|
|
|
@ -183,23 +183,9 @@ class _socketobject(object):
|
|||
and bufsize arguments are as for the built-in open() function."""
|
||||
return _fileobject(self._sock, mode, bufsize)
|
||||
|
||||
def getfamily(self):
|
||||
"""getfamily() -> socket family
|
||||
|
||||
Return the socket family."""
|
||||
return self._sock.family
|
||||
|
||||
def gettype(self):
|
||||
"""gettype() -> socket type
|
||||
|
||||
Return the socket type."""
|
||||
return self._sock.type
|
||||
|
||||
def getproto(self):
|
||||
"""getproto() -> socket protocol
|
||||
|
||||
Return the socket protocol."""
|
||||
return self._sock.proto
|
||||
family = property(lambda self: self._sock.family, doc="the socket family")
|
||||
type = property(lambda self: self._sock.type, doc="the socket type")
|
||||
proto = property(lambda self: self._sock.proto, doc="the socket protocol")
|
||||
|
||||
_s = ("def %s(self, *args): return self._sock.%s(*args)\n\n"
|
||||
"%s.__doc__ = _realsocket.%s.__doc__\n")
|
||||
|
|
|
@ -469,12 +469,12 @@ class GeneralModuleTests(unittest.TestCase):
|
|||
sock.close()
|
||||
self.assertRaises(socket.error, sock.send, "spam")
|
||||
|
||||
def testNewGetMethods(self):
|
||||
# testing getfamily(), gettype() and getprotocol()
|
||||
def testNewAttributes(self):
|
||||
# testing .family, .type and .protocol
|
||||
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
self.assertEqual(sock.getfamily(), socket.AF_INET)
|
||||
self.assertEqual(sock.gettype(), socket.SOCK_STREAM)
|
||||
self.assertEqual(sock.getproto(), 0)
|
||||
self.assertEqual(sock.family, socket.AF_INET)
|
||||
self.assertEqual(sock.type, socket.SOCK_STREAM)
|
||||
self.assertEqual(sock.proto, 0)
|
||||
sock.close()
|
||||
|
||||
class BasicTCPTest(SocketConnectedTest):
|
||||
|
|
Loading…
Reference in New Issue