[Python-checkins] r61809 - in python/branches/trunk-bytearray: Lib/test/test_io.py Objects/bytesobject.c

christian.heimes python-checkins at python.org
Sun Mar 23 21:02:21 CET 2008


Author: christian.heimes
Date: Sun Mar 23 21:02:21 2008
New Revision: 61809

Modified:
   python/branches/trunk-bytearray/Lib/test/test_io.py
   python/branches/trunk-bytearray/Objects/bytesobject.c
Log:
str(bytesarray()) now returns the bytes and not the representation of the bytearray object
Enabled and fixed more unit tests

Modified: python/branches/trunk-bytearray/Lib/test/test_io.py
==============================================================================
--- python/branches/trunk-bytearray/Lib/test/test_io.py	(original)
+++ python/branches/trunk-bytearray/Lib/test/test_io.py	Sun Mar 23 21:02:21 2008
@@ -254,7 +254,7 @@
         self.assertEqual(f.read(), b"xxx")
         f.close()
 
-    def XXXtest_array_writes(self):
+    def test_array_writes(self):
         a = array.array('i', range(10))
         n = len(memoryview(a))
         f = io.open(test_support.TESTFN, "wb", 0)
@@ -651,7 +651,7 @@
         # (4) replace
         b = io.BytesIO(b"abc\n\xff\n")
         t = io.TextIOWrapper(b, encoding="ascii", errors="replace")
-        self.assertEquals(t.read(), "abc\n\ufffd\n")
+        self.assertEquals(t.read(), u"abc\n\ufffd\n")
 
     def testEncodingErrorsWriting(self):
         # (1) default
@@ -677,7 +677,7 @@
         t.flush()
         self.assertEquals(b.getvalue(), b"abc?def\n")
 
-    def XXXtestNewlinesInput(self):
+    def testNewlinesInput(self):
         testdata = b"AAA\nBBB\nCCC\rDDD\rEEE\r\nFFF\r\nGGG"
         normalized = testdata.replace(b"\r\n", b"\n").replace(b"\r", b"\n")
         for newline, expected in [
@@ -710,7 +710,7 @@
             txt.flush()
             self.assertEquals(buf.getvalue(), expected)
 
-    def XXXtestNewlines(self):
+    def testNewlines(self):
         input_lines = [ "unix\n", "windows\r\n", "os9\r", "last\n", "nonl" ]
 
         tests = [
@@ -749,7 +749,7 @@
                             self.assertEquals(got_line, exp_line)
                         self.assertEquals(len(got_lines), len(exp_lines))
 
-    def XXXtestNewlinesInput(self):
+    def testNewlinesInput(self):
         testdata = b"AAA\nBBB\nCCC\rDDD\rEEE\r\nFFF\r\nGGG"
         normalized = testdata.replace(b"\r\n", b"\n").replace(b"\r", b"\n")
         for newline, expected in [
@@ -1002,7 +1002,7 @@
                 print("Reading using readline(): %6.3f seconds" % (t3-t2))
                 print("Using readline()+tell():  %6.3f seconds" % (t4-t3))
 
-    def XXXtestReadOneByOne(self):
+    def testReadOneByOne(self):
         txt = io.TextIOWrapper(io.BytesIO(b"AA\r\nBB"))
         reads = ""
         while True:
@@ -1013,7 +1013,7 @@
         self.assertEquals(reads, "AA\nBB")
 
     # read in amounts equal to TextIOWrapper._CHUNK_SIZE which is 128.
-    def XXXtestReadByChunk(self):
+    def testReadByChunk(self):
         # make sure "\r\n" straddles 128 char boundary.
         txt = io.TextIOWrapper(io.BytesIO(b"A" * 127 + b"\r\nB"))
         reads = ""
@@ -1024,7 +1024,7 @@
             reads += c
         self.assertEquals(reads, "A"*127+"\nB")
 
-    def XXXtest_issue1395_1(self):
+    def test_issue1395_1(self):
         txt = io.TextIOWrapper(io.BytesIO(self.testdata), encoding="ascii")
 
         # read one char at a time
@@ -1036,7 +1036,7 @@
             reads += c
         self.assertEquals(reads, self.normalized)
 
-    def XXXtest_issue1395_2(self):
+    def test_issue1395_2(self):
         txt = io.TextIOWrapper(io.BytesIO(self.testdata), encoding="ascii")
         txt._CHUNK_SIZE = 4
 
@@ -1048,7 +1048,7 @@
             reads += c
         self.assertEquals(reads, self.normalized)
 
-    def XXXtest_issue1395_3(self):
+    def test_issue1395_3(self):
         txt = io.TextIOWrapper(io.BytesIO(self.testdata), encoding="ascii")
         txt._CHUNK_SIZE = 4
 
@@ -1059,7 +1059,7 @@
         reads += txt.readline()
         self.assertEquals(reads, self.normalized)
 
-    def XXXtest_issue1395_4(self):
+    def test_issue1395_4(self):
         txt = io.TextIOWrapper(io.BytesIO(self.testdata), encoding="ascii")
         txt._CHUNK_SIZE = 4
 
@@ -1088,40 +1088,40 @@
         decoder = codecs.getincrementaldecoder("utf-8")()
         decoder = io.IncrementalNewlineDecoder(decoder, translate=True)
 
-        self.assertEquals(decoder.decode(b'\xe8\xa2\x88'), "\u8888")
+        self.assertEquals(decoder.decode(b'\xe8\xa2\x88'), u"\u8888")
 
-        self.assertEquals(decoder.decode(b'\xe8'), "")
-        self.assertEquals(decoder.decode(b'\xa2'), "")
-        self.assertEquals(decoder.decode(b'\x88'), "\u8888")
+        self.assertEquals(decoder.decode(b'\xe8'), u"")
+        self.assertEquals(decoder.decode(b'\xa2'), u"")
+        self.assertEquals(decoder.decode(b'\x88'), u"\u8888")
 
-        self.assertEquals(decoder.decode(b'\xe8'), "")
+        self.assertEquals(decoder.decode(b'\xe8'), u"")
         self.assertRaises(UnicodeDecodeError, decoder.decode, b'', final=True)
 
         decoder.setstate((b'', 0))
-        self.assertEquals(decoder.decode(b'\n'), "\n")
-        self.assertEquals(decoder.decode(b'\r'), "")
-        self.assertEquals(decoder.decode(b'', final=True), "\n")
-        self.assertEquals(decoder.decode(b'\r', final=True), "\n")
-
-        self.assertEquals(decoder.decode(b'\r'), "")
-        self.assertEquals(decoder.decode(b'a'), "\na")
-
-        self.assertEquals(decoder.decode(b'\r\r\n'), "\n\n")
-        self.assertEquals(decoder.decode(b'\r'), "")
-        self.assertEquals(decoder.decode(b'\r'), "\n")
-        self.assertEquals(decoder.decode(b'\na'), "\na")
-
-        self.assertEquals(decoder.decode(b'\xe8\xa2\x88\r\n'), "\u8888\n")
-        self.assertEquals(decoder.decode(b'\xe8\xa2\x88'), "\u8888")
-        self.assertEquals(decoder.decode(b'\n'), "\n")
-        self.assertEquals(decoder.decode(b'\xe8\xa2\x88\r'), "\u8888")
-        self.assertEquals(decoder.decode(b'\n'), "\n")
+        self.assertEquals(decoder.decode(b'\n'), u"\n")
+        self.assertEquals(decoder.decode(b'\r'), u"")
+        self.assertEquals(decoder.decode(b'', final=True), u"\n")
+        self.assertEquals(decoder.decode(b'\r', final=True), u"\n")
+
+        self.assertEquals(decoder.decode(b'\r'), u"")
+        self.assertEquals(decoder.decode(b'a'), u"\na")
+
+        self.assertEquals(decoder.decode(b'\r\r\n'), u"\n\n")
+        self.assertEquals(decoder.decode(b'\r'), u"")
+        self.assertEquals(decoder.decode(b'\r'), u"\n")
+        self.assertEquals(decoder.decode(b'\na'), u"\na")
+
+        self.assertEquals(decoder.decode(b'\xe8\xa2\x88\r\n'), u"\u8888\n")
+        self.assertEquals(decoder.decode(b'\xe8\xa2\x88'), u"\u8888")
+        self.assertEquals(decoder.decode(b'\n'), u"\n")
+        self.assertEquals(decoder.decode(b'\xe8\xa2\x88\r'), u"\u8888")
+        self.assertEquals(decoder.decode(b'\n'), u"\n")
 
         decoder = codecs.getincrementaldecoder("utf-8")()
         decoder = io.IncrementalNewlineDecoder(decoder, translate=True)
         self.assertEquals(decoder.newlines, None)
         decoder.decode(b"abc\n\r")
-        self.assertEquals(decoder.newlines, '\n')
+        self.assertEquals(decoder.newlines, u'\n')
         decoder.decode(b"\nabc")
         self.assertEquals(decoder.newlines, ('\n', '\r\n'))
         decoder.decode(b"abc\r")

Modified: python/branches/trunk-bytearray/Objects/bytesobject.c
==============================================================================
--- python/branches/trunk-bytearray/Objects/bytesobject.c	(original)
+++ python/branches/trunk-bytearray/Objects/bytesobject.c	Sun Mar 23 21:02:21 2008
@@ -997,12 +997,15 @@
 static PyObject *
 bytes_str(PyObject *op)
 {
+#if 0
     if (Py_BytesWarningFlag) {
         if (PyErr_WarnEx(PyExc_BytesWarning,
                  "str() on a bytearray instance", 1))
             return NULL;
     }
     return bytes_repr((PyBytesObject*)op);
+#endif
+    return PyString_FromStringAndSize(((PyBytesObject*)op)->ob_bytes, Py_SIZE(op));
 }
 
 static PyObject *


More information about the Python-checkins mailing list