Merged revisions 83392,83426 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/branches/release27-maint

................
  r83392 | georg.brandl | 2010-08-01 10:22:05 +0200 (So, 01 Aug 2010) | 1 line

  #8471: reset _SpoofOut.buf to an empty string when truncating; if Unicode had been output previously, it had been coerced to a Unicode string, potentially making subsequent prints behave differently or raise UnicodeErrors.
................
  r83426 | georg.brandl | 2010-08-01 21:06:51 +0200 (So, 01 Aug 2010) | 27 lines

  Merged revisions 83370,83372-83374,83384 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/branches/py3k

  ........
    r83370 | georg.brandl | 2010-07-31 23:51:48 +0200 (Sa, 31 Jul 2010) | 5 lines

    #8198: the Helper class should not save the stdin and stdout objects
    at import time, rather by default use the current streams like the
    other APIs that output help.
  ........
    r83372 | georg.brandl | 2010-08-01 00:05:54 +0200 (So, 01 Aug 2010) | 1 line

    #4007: remove *.a and *.so.X.Y files in "make clean".
  ........
    r83373 | georg.brandl | 2010-08-01 00:11:11 +0200 (So, 01 Aug 2010) | 1 line

    #5147: revert accidental indentation of header constant for MozillaCookieJar.
  ........
    r83374 | georg.brandl | 2010-08-01 00:32:52 +0200 (So, 01 Aug 2010) | 1 line

    #5146: handle UID THREAD command correctly.
  ........
    r83384 | georg.brandl | 2010-08-01 08:32:55 +0200 (So, 01 Aug 2010) | 1 line

    Build properties using lambdas.  This makes test_pyclbr pass again, because it does not think that input and output are methods anymore.
  ........
................
This commit is contained in:
Georg Brandl 2010-08-01 22:05:31 +00:00
parent c5356994ed
commit 03c1cff576
7 changed files with 54 additions and 10 deletions

View File

@ -38,9 +38,9 @@ class MozillaCookieJar(FileCookieJar):
"""
magic_re = "#( Netscape)? HTTP Cookie File"
header = """\
# Netscape HTTP Cookie File
# http://www.netscape.com/newsref/std/cookie_spec.html
# This is a generated file! Do not edit.
# Netscape HTTP Cookie File
# http://www.netscape.com/newsref/std/cookie_spec.html
# This is a generated file! Do not edit.
"""

View File

@ -263,6 +263,9 @@ class _SpoofOut(StringIO):
StringIO.truncate(self, size)
if hasattr(self, "softspace"):
del self.softspace
if not self.buf:
# Reset it to an empty string, to make sure it's not unicode.
self.buf = ''
# Worst-case linear-time ellipsis matching.
def _ellipsis_match(want, got):

View File

@ -751,7 +751,7 @@ class IMAP4:
', '.join(Commands[command])))
name = 'UID'
typ, dat = self._simple_command(name, command, *args)
if command in ('SEARCH', 'SORT'):
if command in ('SEARCH', 'SORT', 'THREAD'):
name = command
else:
name = 'FETCH'

View File

@ -1705,9 +1705,12 @@ class Helper:
'CONTEXTMANAGERS': ('context-managers', 'with'),
}
def __init__(self, input, output):
self.input = input
self.output = output
def __init__(self, input=None, output=None):
self._input = input
self._output = output
input = property(lambda self: self._input or sys.stdin)
output = property(lambda self: self._output or sys.stdout)
def __repr__(self):
if inspect.stack()[1][3] == '?':
@ -1884,7 +1887,7 @@ Enter any module name to get more help. Or, type "modules spam" to search
for modules whose descriptions contain the word "spam".
''')
help = Helper(sys.stdin, sys.stdout)
help = Helper()
class Scanner:
"""A generic tree iterator."""

View File

@ -1508,7 +1508,33 @@ source:
>>> test = doctest.DocTestParser().get_doctest(s, {}, 's', 's.py', 0)
Traceback (most recent call last):
ValueError: line 0 of the doctest for s has an option directive on a line with no example: '# doctest: +ELLIPSIS'
"""
"""
def test_unicode_output(self): r"""
Check that unicode output works:
>>> u'\xe9'
u'\xe9'
If we return unicode, SpoofOut's buf variable becomes automagically
converted to unicode. This means all subsequent output becomes converted
to unicode, and if the output contains non-ascii characters that failed.
It used to be that this state change carried on between tests, meaning
tests would fail if unicode has been output previously in the testrun.
This test tests that this is no longer so:
>>> print u'abc'
abc
And then return a string with non-ascii characters:
>>> print u'\xe9'.encode('utf-8')
é
"""
def test_testsource(): r"""
Unit tests for `testsource()`.

View File

@ -1137,10 +1137,11 @@ pycremoval:
find $(srcdir) -name '*.py[co]' -exec rm -f {} ';'
clean: pycremoval
find . -name '*.o' -exec rm -f {} ';'
find . -name '*.[oa]' -exec rm -f {} ';'
find . -name '*.s[ol]' -exec rm -f {} ';'
find $(srcdir)/build -name 'fficonfig.h' -exec rm -f {} ';' || true
find $(srcdir)/build -name 'fficonfig.py' -exec rm -f {} ';' || true
find . -name '*.so.[0-9]*.[0-9]*' -exec rm -f {} ';'
-rm -f Lib/lib2to3/*Grammar*.pickle
profile-removal:

View File

@ -89,8 +89,19 @@ C-API
Library
-------
- Issue #5146: Handle UID THREAD command correctly in imaplib.
- Issue #5147: Fix the header generated for cookie files written by
http.cookiejar.MozillaCookieJar.
- Issue #8198: In pydoc, output all help text to the correct stream
when sys.stdout is reassigned.
- Issue #1019882: Fix IndexError when loading certain hotshot stats.
- Issue #8471: In doctest, properly reset the output stream to an empty
string when Unicode was previously output.
- Issue #8397: Raise an error when attempting to mix iteration and regular
reads on a BZ2File object, rather than returning incorrect results.