[Python-3000-checkins] r57042 - in python/branches/py3k: Lib/test/test_bool.py Objects/stringobject.c
martin.v.loewis
python-3000-checkins at python.org
Tue Aug 14 23:57:33 CEST 2007
Author: martin.v.loewis
Date: Tue Aug 14 23:57:32 2007
New Revision: 57042
Modified:
python/branches/py3k/Lib/test/test_bool.py
python/branches/py3k/Objects/stringobject.c
Log:
Format bools properly in %d.
Modified: python/branches/py3k/Lib/test/test_bool.py
==============================================================================
--- python/branches/py3k/Lib/test/test_bool.py (original)
+++ python/branches/py3k/Lib/test/test_bool.py Tue Aug 14 23:57:32 2007
@@ -163,6 +163,12 @@
self.assertIs(bool(""), False)
self.assertIs(bool(), False)
+ def test_format(self):
+ self.assertEqual("%d" % False, "0")
+ self.assertEqual("%d" % True, "1")
+ self.assertEqual("%x" % False, "0")
+ self.assertEqual("%x" % True, "1")
+
def test_hasattr(self):
self.assertIs(hasattr([], "append"), True)
self.assertIs(hasattr([], "wobble"), False)
Modified: python/branches/py3k/Objects/stringobject.c
==============================================================================
--- python/branches/py3k/Objects/stringobject.c (original)
+++ python/branches/py3k/Objects/stringobject.c Tue Aug 14 23:57:32 2007
@@ -4144,11 +4144,14 @@
return NULL;
}
-
switch (type) {
case 'd':
case 'u':
- result = Py_Type(val)->tp_str(val);
+ /* Special-case boolean: we want 0/1 */
+ if (PyBool_Check(val))
+ result = PyNumber_ToBase(val, 10);
+ else
+ result = Py_Type(val)->tp_str(val);
break;
case 'o':
numnondigits = 2;
More information about the Python-3000-checkins
mailing list