Simplify socket_repr() by using PyUnicode_FromFormat()
directly. Add a test that calls socket_repr().
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index cfb293f..8ba2ceb 100644
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -217,6 +217,10 @@
class GeneralModuleTests(unittest.TestCase):
+ def test_repr(self):
+ s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ self.assert_(repr(s).startswith("<socket.socket object"))
+
def test_weakref(self):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
p = proxy(s)
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index eca29dd..4ae745c 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -2787,13 +2787,11 @@
return NULL;
}
#endif
- PyOS_snprintf(
- buf, sizeof(buf),
+ return PyUnicode_FromFormat(
"<socket object, fd=%ld, family=%d, type=%d, proto=%d>",
(long)s->sock_fd, s->sock_family,
s->sock_type,
s->sock_proto);
- return PyUnicode_FromString(buf);
}