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);
 }