Make test_tokenize pass again:
Add code to test_roundtrip() that figures out the encoding
from the first two lines of the file.
(We need to refactor this again to make it available to
all places that need this, e.g. linecache.py.)
Fix an obvious bug caused by a switch to Unicode.
However, this will need to be fixed further to allow non-ASCII letters in
names; leaving this to MvL.
Jeremy Hylton [Sat, 4 Aug 2007 03:25:17 +0000 (03:25 +0000)]
Fix several more paths from the SSL code.
In particular, watch out for comparing b"" to "". They're not equal,
but you can start at the code asking whether buf == "" for a long time
before realizing that it will never be True.
Jeremy Hylton [Sat, 4 Aug 2007 02:34:24 +0000 (02:34 +0000)]
HTTPResponse should not inherit from io.IOBase.
I'm not sure why I thought it should originally, but it introduces an
__del__() method on the response which cause the close() to be called
too soon using the HTTP compat class.
Also, remove some stale comments. The HTTPResponse calls makefile()
immediately, so there is no risk of it closing the socket.
Jeremy Hylton [Fri, 3 Aug 2007 20:40:09 +0000 (20:40 +0000)]
Make sure socket.close() doesn't interfere with socket.makefile().
If a makefile()-generated object is open and its parent socket is
closed, the parent socket should remain open until the child is
closed, too. The code to support this is moderately complex and
requires one extra slots in the socket object.
This change fixes httplib so that several urllib2net test cases pass
again.
Add SocketCloser class to socket.py, which encapsulates the
refcounting logic for sockets after makefile() has been called.
Move SocketIO class from io module to socket module. It's only use is
to implement the raw I/O methods on top of a socket to support
makefile().
Add unittests to test_socket to cover various patterns of close and
makefile.
Jeremy Hylton [Fri, 3 Aug 2007 20:31:38 +0000 (20:31 +0000)]
Hack: Fix some test_urllib2.net tests by getting them access to the
raw socket so they can check the timeout value. Should change the
code under test to expose the timeout in a more direct way.
SF patch# 1762940 by Joe Gregorio.
Fix test_cookielib and test_urllib2.
(The changes to urllib make urllib.quote() work correctly for Unicode
strings; but they don't fix test_urllib.)
Add a default __prepare__() method to 'type', so it can be called
using super(). (See recent conversation on python-3000 with Talin
and Phillip Eby about PEP 3115 chaining rules.)
Changes to long and float by Jeffrey Jasskin to conform to PEP 3141.
In particular, add trivial implementations of .real, .imag and .conjugate()
to both, and add .numerator and .denominator to long.
Also some small optimizations (e.g. remove long_pos in favor of long_long).
Tests for @abstractproperty by Jeffrey Yasskin.
(The previous changes to abc.py were also by him).
Put back a comment about using super() for properties
(I didn't realize this worked).
Walter Dörwald [Mon, 30 Jul 2007 13:31:40 +0000 (13:31 +0000)]
Bytes (which are the input for decoding) are mutable now. If a decoding
error callback changes the bytes object in the exception the decoder might
use memory that's no longer in use. Change unicode_decode_call_errorhandler()
so that it fetches the adresses of the bytes array (start and end) from the
exception object and passes them back to the caller.
Add a missing "rf.depth = 0;" to marshal_load().
Reported by Joe Smith. This makes the CYGWIN tests pass;
it's a miracle it didn't fail on other platforms.
Seems like it was accidentally dropped (maybe a merge artifact?).
Fix the minidom test.
In order to do this, I added an optional encoding argument to io.StringIO.
The toprettyxml() function returns bytes when you specify an encoding now.
Make the last two curses demos work again -- they were using float
division. The other curses demos all work fine, so I'm more confident
that the curses library actually works. (Don't try to display
non-ASCII characters, of course.)
SF patch# 1759016 by Joe Gregorio, who writes:
1. Removed "returns_unicode" attribute, associated code
in the module to support that attribute, and all tests
associated with it.
2. Parsed data is now returned as unicode strings.
3. Changed input tests to use io.BytesIO instead
of StringIO, to reflect the byte processing
nature of expat.
SF patch# 1758570 by Jeffrey Yasskin, who writes:
I made Carbon.File.pathname return unicode, by analogy with
macpath.abspath. There could easily be other bugs of the same sort in this
file. The uses of PyString_FromString*() in particular look sketchy.
Make close() (all versions) ignore IOError from flush().
This makes test_resource.py pass, and I think it's the right thing
to do: if you're closing a file after encountering an I/O error
there's nothing you can do about it. If you want the error, you
can call flush() yourself.
Remove this test; it checked for a single old bug and I don't think that
its failure means much, now that the handling of unicode and bytes has
changed so much.
Make test_compile not fail.
I *think* it's okay no longer to require that compiling a Unicode
string with a coding declaration fails; it seems appropriate to
just ignore it.
PEP 3123: Provide forward compatibility with Python 3.0, while keeping
backwards compatibility. Add Py_Refcnt, Py_Type, Py_Size, and
PyVarObject_HEAD_INIT.
........
................
r56478 | martin.v.loewis | 2007-07-21 09:47:23 +0200 (Sa, 21 Jul 2007) | 2 lines
PEP 3123: Use proper C inheritance for PyObject.
................
r56479 | martin.v.loewis | 2007-07-21 10:06:55 +0200 (Sa, 21 Jul 2007) | 3 lines
Add longintrepr.h to Python.h, so that the compiler can
see that PyFalse is really some kind of PyObject*.
................
r56480 | martin.v.loewis | 2007-07-21 10:47:18 +0200 (Sa, 21 Jul 2007) | 2 lines
Delete failing test that was checking that a slot declaration with
a non-ASCII character in it should fail. Because of PEP 3131 this
test is bogus anyway. Also some cosmetic cleanup.
Use "Unix" as platform name, not "UNIX".
........
r56441 | guido.van.rossum | 2007-07-18 10:19:14 -0700 (Wed, 18 Jul 2007) | 3 lines
SF patch# 1755885 by Kurt Kaiser: show location of Unicode escape errors.
(Slightly tweaked for style and refcounts.)
........
r56444 | kurt.kaiser | 2007-07-18 12:58:42 -0700 (Wed, 18 Jul 2007) | 2 lines
Fix failing unicode test caused by change to ast.c at r56441
........
r56451 | georg.brandl | 2007-07-18 15:36:53 -0700 (Wed, 18 Jul 2007) | 2 lines
Document that codecs.lookup() returns a CodecInfo object.
(fixes SF bug #1754453).
........
r56463 | facundo.batista | 2007-07-19 16:57:38 -0700 (Thu, 19 Jul 2007) | 6 lines
Added a select.select call in the test server loop to make sure the
socket is ready to be read from before attempting a read (this
prevents an error 10035 on some Windows platforms). [GSoC - Alan
McIntyre]
........
................
Fix test_pickle, by reverting the string opcodes (S, T, U) to returning
strings, in Latin-1. Bytes are once more pickled through bytes.__reduce__,
but now it returns "latin-1" as the second parameter.
Unfortunately this breaks datetime pickling. I'll have to investigate
further; reverting Martin's changes doesn't seem to help.
Patch 1673122: be explicit about which libtool to use, to avoid name clashes
when a users install GNU libtool early in his PATH
........
r56280 | georg.brandl | 2007-07-11 12:41:49 -0700 (Wed, 11 Jul 2007) | 2 lines
Bug #1637365: add subsection about "__name__ == __main__" to the
Python tutorial.
........
r56308 | georg.brandl | 2007-07-12 02:59:22 -0700 (Thu, 12 Jul 2007) | 5 lines
Patch #1675424: Added tests for uncovered code in the zipfile module.
The KeyError raised by Zipfile.getinfo for nonexistent names now has
a descriptive message.
........
r56340 | facundo.batista | 2007-07-13 03:43:44 -0700 (Fri, 13 Jul 2007) | 6 lines
Added tests for basic behavior of DateTime, Binary, and Fault classes
and the escape function. Check that marshalling recursive sequences &
dicts raises TypeError. Check that marshalling out-of-range ints
raises OverflowError [Alan McIntyre - GSoC]
........
r56345 | raymond.hettinger | 2007-07-13 05:09:41 -0700 (Fri, 13 Jul 2007) | 1 line
Correct the docs for takewhile(). Improve the recipe for nth(). Should be backported
........
r56348 | thomas.heller | 2007-07-13 06:59:39 -0700 (Fri, 13 Jul 2007) | 4 lines
Repair COMError. Since exceptions are new style classes now, setting
the methods and docstring after the type creation does not work, they
must be in the dictionary before creating the type.
........
r56349 | thomas.heller | 2007-07-13 07:18:06 -0700 (Fri, 13 Jul 2007) | 1 line
Do not try to load the GLUT library in the ctypes tests. This test
adds little value, but has a large problem on OS X, as explained in
SF# 1581906.
........
r56352 | thomas.heller | 2007-07-13 10:12:23 -0700 (Fri, 13 Jul 2007) | 3 lines
Fix for SF# 1701409: segfault in c_char_p of ctypes. The repr output
of c_char_p and c_wchar_p has changed as a sideeffect.
........
r56355 | thomas.heller | 2007-07-13 10:46:54 -0700 (Fri, 13 Jul 2007) | 3 lines
PyType_stgdict() returns a borrowed reference which must not be
Py_DECREF'd.
........
r56360 | barry.warsaw | 2007-07-13 15:12:58 -0700 (Fri, 13 Jul 2007) | 10 lines
In response to this SF bug:
[ 1752723 ] email.message_from_string: initial line gets discarded
I added a test to assert that when the first line of text passed to
message_from_string() contains a leading space, the message ends up with the
appropriate FirstHeaderLineIsContinuationDefect on its defects list.
The bug is invalid.
........
r56364 | georg.brandl | 2007-07-14 10:12:23 -0700 (Sat, 14 Jul 2007) | 2 lines
Avoid exception if there's a stray directory inside a Maildir folder.
The Maildir specification doesn't seem to say anything about this
situation, and it can happen if you're keeping a Maildir mailbox in
Subversion (.svn directories) or some similar system. The patch just
ignores directories in the cur/, new/, tmp/ folders.
........
r56392 | facundo.batista | 2007-07-14 15:41:45 -0700 (Sat, 14 Jul 2007) | 6 lines
First version. Includes tests for helper functions: read, write,
_exception, readwrite, closeall, compact_traceback; and for classes
dispatcher, dispatcher_with_send, and file_wrapper.
[Alan McIntyre - GSoC]
........
r56399 | facundo.batista | 2007-07-15 13:30:39 -0700 (Sun, 15 Jul 2007) | 5 lines
Changed the used port and commented out some tests that uses
a non documented function that appers to uses resources
not present in Windows.
........
r56412 | facundo.batista | 2007-07-16 19:19:39 -0700 (Mon, 16 Jul 2007) | 6 lines
Prevent asyncore.dispatcher tests from hanging by adding loop counters
to server & client, and by adding asyncore.close_all calls in
tearDown. Also choose correct expected logging results based on the
value of __debug__ [Alan McIntyre - GSoC]
........
................
r56442 | guido.van.rossum | 2007-07-18 10:26:38 -0700 (Wed, 18 Jul 2007) | 14 lines
Merged revisions 56413-56441 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
Martin v. Löwis [Wed, 18 Jul 2007 02:28:27 +0000 (02:28 +0000)]
Change Py_BuildValue to generate Unicode objects for
's' and 'c' codes.
Change pickle to dump bytes objects using the 'S'
code, and to load the 'S' code as byte objects.
Change datetime and array to generate and expect
bytes objects in reduce/unreduce.
Minimal changes to make ftplib work. Basically, this opens the stream in
text mode and encodes commands being sent. The default encoding is ASCII,
there's a class/instance variable 'encoding' you could set to change it.