summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2008-07-16 03:43:04 (GMT)
committerGeorg Brandl <georg@python.org>2008-07-16 03:43:04 (GMT)
commit86b2fb9d77e483cc56e85bc4c96ac54f55427d39 (patch)
tree1f0a034d417db72fa03cfb506b0e27daf1dc0a4f /Lib
parent3ccb78724127e3501067e8693fa15807e2777e9c (diff)
downloadcpython-86b2fb9d77e483cc56e85bc4c96ac54f55427d39.zip
cpython-86b2fb9d77e483cc56e85bc4c96ac54f55427d39.tar.gz
cpython-86b2fb9d77e483cc56e85bc4c96ac54f55427d39.tar.bz2
Merged revisions 64623,64640,64665,64687,64689-64690,64719,64721,64735,64742,64744-64746,64756-64761,64767-64769,64771-64772,64774-64775,64788,64793,64835-64836 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r64623 | benjamin.peterson | 2008-07-01 21:51:54 +0200 (Tue, 01 Jul 2008) | 1 line write a short little section for multiprocessing; it still needs help ........ r64640 | georg.brandl | 2008-07-01 22:56:03 +0200 (Tue, 01 Jul 2008) | 2 lines Add a comment about incref'ing w. ........ r64665 | jesse.noller | 2008-07-02 18:56:51 +0200 (Wed, 02 Jul 2008) | 1 line Add #!/usr/bin/env python for ben ........ r64687 | andrew.kuchling | 2008-07-03 14:50:03 +0200 (Thu, 03 Jul 2008) | 1 line Tweak wording ........ r64689 | benjamin.peterson | 2008-07-03 14:57:35 +0200 (Thu, 03 Jul 2008) | 1 line lowercase glossary term ........ r64690 | benjamin.peterson | 2008-07-03 15:01:17 +0200 (Thu, 03 Jul 2008) | 1 line let the term be linked ........ r64719 | raymond.hettinger | 2008-07-05 04:11:55 +0200 (Sat, 05 Jul 2008) | 1 line Update comment on prediction macros. ........ r64721 | georg.brandl | 2008-07-05 12:07:18 +0200 (Sat, 05 Jul 2008) | 2 lines Fix tabs. ........ r64735 | mark.dickinson | 2008-07-05 17:25:48 +0200 (Sat, 05 Jul 2008) | 3 lines Minor rewrite of cmath_log to work around a Sun compiler bug. See issue #3168. ........ r64742 | benjamin.peterson | 2008-07-05 18:29:38 +0200 (Sat, 05 Jul 2008) | 1 line make regrtest aware of the lib2to3 resource ........ r64744 | georg.brandl | 2008-07-05 18:43:45 +0200 (Sat, 05 Jul 2008) | 2 lines Keep below 80 chars. ........ r64745 | facundo.batista | 2008-07-05 21:19:50 +0200 (Sat, 05 Jul 2008) | 3 lines Issue 3289. Removed two lines that ended doing nothing. ........ r64746 | facundo.batista | 2008-07-05 22:39:59 +0200 (Sat, 05 Jul 2008) | 4 lines Issue #3239. Differentiate the ascii call from the curses one and the builtin one. ........ r64756 | gregory.p.smith | 2008-07-06 09:16:40 +0200 (Sun, 06 Jul 2008) | 3 lines - Issue #2113: Fix error in subprocess.Popen if the select system call is interrupted by a signal. ........ r64757 | benjamin.peterson | 2008-07-06 14:39:09 +0200 (Sun, 06 Jul 2008) | 1 line remove test_compact_freelists from test_sys ........ r64758 | gregory.p.smith | 2008-07-06 19:06:29 +0200 (Sun, 06 Jul 2008) | 2 lines fix issue3304 - remove an incorrect PyMem_Free in fileio_init ........ r64759 | georg.brandl | 2008-07-06 19:36:20 +0200 (Sun, 06 Jul 2008) | 2 lines Fix opensearch template. ........ r64760 | andrew.kuchling | 2008-07-06 19:43:16 +0200 (Sun, 06 Jul 2008) | 1 line Wording fix ........ r64761 | andrew.kuchling | 2008-07-06 19:44:17 +0200 (Sun, 06 Jul 2008) | 1 line Add two items; rewrap paragraph ........ r64767 | gregory.p.smith | 2008-07-07 06:31:58 +0200 (Mon, 07 Jul 2008) | 4 lines - Issue #3309: Fix bz2.BZFile itererator to release its internal lock properly when raising an exception due to the bz2file being closed. Prevents a deadlock. ........ r64768 | josiah.carlson | 2008-07-07 06:51:46 +0200 (Mon, 07 Jul 2008) | 2 lines Fixed bugs 760475, 953599, and 1519. ........ r64769 | gregory.p.smith | 2008-07-07 06:54:31 +0200 (Mon, 07 Jul 2008) | 2 lines Add commented out #_sha256 and #_sha512 lines per issue 3183. ........ r64771 | gregory.p.smith | 2008-07-07 07:09:12 +0200 (Mon, 07 Jul 2008) | 4 lines - Issue #3094: httplib.HTTPSConnection Host: headers no longer include the redundant ":443" port number designation when the connection is using the default https port (443). ........ r64772 | skip.montanaro | 2008-07-07 13:16:14 +0200 (Mon, 07 Jul 2008) | 2 lines Correct grammar. ........ r64774 | andrew.kuchling | 2008-07-07 18:51:09 +0200 (Mon, 07 Jul 2008) | 1 line Fix example to match text ........ r64775 | facundo.batista | 2008-07-07 19:02:59 +0200 (Mon, 07 Jul 2008) | 3 lines Issue 3306. Better control for a lenght in findmax() function. ........ r64788 | georg.brandl | 2008-07-08 09:05:23 +0200 (Tue, 08 Jul 2008) | 2 lines Add missing ABCs to list. ........ r64793 | nick.coghlan | 2008-07-08 16:21:42 +0200 (Tue, 08 Jul 2008) | 1 line Add missing NEWS and ACK entries for r64791 ........ r64835 | raymond.hettinger | 2008-07-10 11:31:08 +0200 (Thu, 10 Jul 2008) | 1 line Issue 3287: Raise correct exception for float inputs. ........ r64836 | raymond.hettinger | 2008-07-10 12:28:41 +0200 (Thu, 10 Jul 2008) | 1 line Use operator.index() instead of n.__index__(). ........
Diffstat (limited to 'Lib')
-rw-r--r--Lib/curses/textpad.py37
-rwxr-xr-xLib/fractions.py5
-rw-r--r--Lib/http/client.py2
-rw-r--r--Lib/subprocess.py7
-rwxr-xr-xLib/test/regrtest.py6
-rw-r--r--Lib/test/test_audioop.py4
-rw-r--r--Lib/test/test_bz2.py11
-rw-r--r--Lib/test/test_fractions.py8
-rw-r--r--Lib/test/test_multiprocessing.py2
-rw-r--r--Lib/test/test_sys.py15
10 files changed, 53 insertions, 44 deletions
diff --git a/Lib/curses/textpad.py b/Lib/curses/textpad.py
index a05b82b..2b4b4cb 100644
--- a/Lib/curses/textpad.py
+++ b/Lib/curses/textpad.py
@@ -1,6 +1,7 @@
"""Simple textbox editing widget with Emacs-like keybindings."""
-import curses, ascii
+import curses
+import curses.ascii
def rectangle(win, uly, ulx, lry, lrx):
"""Draw a rectangle with corners at the provided upper-left
@@ -54,7 +55,7 @@ class Textbox:
returning the index of the last non-blank character."""
last = self.maxx
while True:
- if ascii.ascii(self.win.inch(y, last)) != ascii.SP:
+ if curses.ascii.ascii(self.win.inch(y, last)) != curses.ascii.SP:
last = min(self.maxx, last+1)
break
elif last == 0:
@@ -76,7 +77,7 @@ class Textbox:
pass
if self.insert_mode:
(backy, backx) = self.win.getyx()
- if ascii.isprint(oldch):
+ if curses.ascii.isprint(oldch):
self._insert_printable_char(oldch)
self.win.move(backy, backx)
@@ -84,12 +85,12 @@ class Textbox:
"Process a single editing command."
(y, x) = self.win.getyx()
self.lastcmd = ch
- if ascii.isprint(ch):
+ if curses.ascii.isprint(ch):
if y < self.maxy or x < self.maxx:
self._insert_printable_char(ch)
- elif ch == ascii.SOH: # ^a
+ elif ch == curses.ascii.SOH: # ^a
self.win.move(y, 0)
- elif ch in (ascii.STX,curses.KEY_LEFT, ascii.BS,curses.KEY_BACKSPACE):
+ elif ch in (curses.ascii.STX,curses.KEY_LEFT, curses.ascii.BS,curses.KEY_BACKSPACE):
if x > 0:
self.win.move(y, x-1)
elif y == 0:
@@ -98,46 +99,46 @@ class Textbox:
self.win.move(y-1, self._end_of_line(y-1))
else:
self.win.move(y-1, self.maxx)
- if ch in (ascii.BS, curses.KEY_BACKSPACE):
+ if ch in (curses.ascii.BS, curses.KEY_BACKSPACE):
self.win.delch()
- elif ch == ascii.EOT: # ^d
+ elif ch == curses.ascii.EOT: # ^d
self.win.delch()
- elif ch == ascii.ENQ: # ^e
+ elif ch == curses.ascii.ENQ: # ^e
if self.stripspaces:
self.win.move(y, self._end_of_line(y))
else:
self.win.move(y, self.maxx)
- elif ch in (ascii.ACK, curses.KEY_RIGHT): # ^f
+ elif ch in (curses.ascii.ACK, curses.KEY_RIGHT): # ^f
if x < self.maxx:
self.win.move(y, x+1)
elif y == self.maxy:
pass
else:
self.win.move(y+1, 0)
- elif ch == ascii.BEL: # ^g
+ elif ch == curses.ascii.BEL: # ^g
return 0
- elif ch == ascii.NL: # ^j
+ elif ch == curses.ascii.NL: # ^j
if self.maxy == 0:
return 0
elif y < self.maxy:
self.win.move(y+1, 0)
- elif ch == ascii.VT: # ^k
+ elif ch == curses.ascii.VT: # ^k
if x == 0 and self._end_of_line(y) == 0:
self.win.deleteln()
else:
# first undo the effect of self._end_of_line
self.win.move(y, x)
self.win.clrtoeol()
- elif ch == ascii.FF: # ^l
+ elif ch == curses.ascii.FF: # ^l
self.win.refresh()
- elif ch in (ascii.SO, curses.KEY_DOWN): # ^n
+ elif ch in (curses.ascii.SO, curses.KEY_DOWN): # ^n
if y < self.maxy:
self.win.move(y+1, x)
if x > self._end_of_line(y+1):
self.win.move(y+1, self._end_of_line(y+1))
- elif ch == ascii.SI: # ^o
+ elif ch == curses.ascii.SI: # ^o
self.win.insertln()
- elif ch in (ascii.DLE, curses.KEY_UP): # ^p
+ elif ch in (curses.ascii.DLE, curses.KEY_UP): # ^p
if y > 0:
self.win.move(y-1, x)
if x > self._end_of_line(y-1):
@@ -155,7 +156,7 @@ class Textbox:
for x in range(self.maxx+1):
if self.stripspaces and x > stop:
break
- result = result + chr(ascii.ascii(self.win.inch(y, x)))
+ result = result + chr(curses.ascii.ascii(self.win.inch(y, x)))
if self.maxy > 0:
result = result + "\n"
return result
diff --git a/Lib/fractions.py b/Lib/fractions.py
index 329a16f..3df628a 100755
--- a/Lib/fractions.py
+++ b/Lib/fractions.py
@@ -94,9 +94,8 @@ class Fraction(numbers.Rational):
if denominator == 0:
raise ZeroDivisionError('Fraction(%s, 0)' % numerator)
-
- numerator = numerator.__index__()
- denominator = denominator.__index__()
+ numerator = operator.index(numerator)
+ denominator = operator.index(denominator)
g = gcd(numerator, denominator)
self._numerator = numerator // g
self._denominator = denominator // g
diff --git a/Lib/http/client.py b/Lib/http/client.py
index 96bcd72..4a078d3 100644
--- a/Lib/http/client.py
+++ b/Lib/http/client.py
@@ -783,7 +783,7 @@ class HTTPConnection:
host_enc = self.host.encode("ascii")
except UnicodeEncodeError:
host_enc = self.host.encode("idna")
- if self.port == HTTP_PORT:
+ if self.port == self.default_port:
self.putheader('Host', host_enc)
else:
host_enc = host_enc.decode("ascii")
diff --git a/Lib/subprocess.py b/Lib/subprocess.py
index 8df1034..e94fc2c 100644
--- a/Lib/subprocess.py
+++ b/Lib/subprocess.py
@@ -1149,7 +1149,12 @@ class Popen(object):
input_offset = 0
while read_set or write_set:
- rlist, wlist, xlist = select.select(read_set, write_set, [])
+ try:
+ rlist, wlist, xlist = select.select(read_set, write_set, [])
+ except select.error as e:
+ if e.args[0] == errno.EINTR:
+ continue
+ raise
# XXX Rewrite these to use non-blocking I/O on the
# file objects; they are no longer using C stdio!
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index d523d5b..d47fde3 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -101,6 +101,8 @@ resources to test. Currently only the following are defined:
curses - Tests that use curses and will modify the terminal's
state and output modes.
+ lib2to3 - Run the tests for 2to3 (They take a while.)
+
largefile - It is okay to run some test that may create huge
files. These tests can take a long time and may
consume >2GB of disk space temporarily.
@@ -173,8 +175,8 @@ if sys.platform == 'darwin':
from test import support
-RESOURCE_NAMES = ('audio', 'curses', 'largefile', 'network', 'bsddb',
- 'decimal', 'compiler', 'subprocess', 'urlfetch')
+RESOURCE_NAMES = ('audio', 'curses', 'lib2to3', 'largefile', 'network',
+ 'bsddb', 'decimal', 'compiler', 'subprocess', 'urlfetch')
def usage(msg):
diff --git a/Lib/test/test_audioop.py b/Lib/test/test_audioop.py
index d43159a..689b0de 100644
--- a/Lib/test/test_audioop.py
+++ b/Lib/test/test_audioop.py
@@ -163,6 +163,10 @@ class TestAudioop(unittest.TestCase):
self.assertEqual(audioop.getsample(data[1], 2, i), i)
self.assertEqual(audioop.getsample(data[2], 4, i), i)
+ def test_negavitelen(self):
+ # from issue 3306, previously it segfaulted
+ self.assertRaises(audioop.error,
+ audioop.findmax, ''.join(chr(x) for x in range(256)), -2392392)
def test_main():
run_unittest(TestAudioop)
diff --git a/Lib/test/test_bz2.py b/Lib/test/test_bz2.py
index 4646f02..366ab7a 100644
--- a/Lib/test/test_bz2.py
+++ b/Lib/test/test_bz2.py
@@ -120,6 +120,17 @@ class BZ2FileTest(BaseTest):
self.assertEqual(list(iter(bz2f)), sio.readlines())
bz2f.close()
+ def testClosedIteratorDeadlock(self):
+ # "Test that iteration on a closed bz2file releases the lock."
+ # http://bugs.python.org/issue3309
+ self.createTempFile()
+ bz2f = BZ2File(self.filename)
+ bz2f.close()
+ self.assertRaises(ValueError, bz2f.__next__)
+ # This call will deadlock of the above .__next__ call failed to
+ # release the lock.
+ self.assertRaises(ValueError, bz2f.readlines)
+
def testWrite(self):
# "Test BZ2File.write()"
bz2f = BZ2File(self.filename, "w")
diff --git a/Lib/test/test_fractions.py b/Lib/test/test_fractions.py
index 3c8da77..4f8defb 100644
--- a/Lib/test/test_fractions.py
+++ b/Lib/test/test_fractions.py
@@ -62,11 +62,11 @@ class FractionTest(unittest.TestCase):
self.assertRaisesMessage(ZeroDivisionError, "Fraction(12, 0)",
F, 12, 0)
- self.assertRaises(AttributeError, F, 1.5)
- self.assertRaises(AttributeError, F, 1.5 + 3j)
+ self.assertRaises(TypeError, F, 1.5)
+ self.assertRaises(TypeError, F, 1.5 + 3j)
- self.assertRaises(AttributeError, F, F(1, 2), 3)
- self.assertRaises(AttributeError, F, "3/2", 3)
+ self.assertRaises(TypeError, F, F(1, 2), 3)
+ self.assertRaises(TypeError, F, "3/2", 3)
def testFromString(self):
self.assertEquals((5, 1), _components(F("5")))
diff --git a/Lib/test/test_multiprocessing.py b/Lib/test/test_multiprocessing.py
index 4c5f7a5..5f5c588 100644
--- a/Lib/test/test_multiprocessing.py
+++ b/Lib/test/test_multiprocessing.py
@@ -1,3 +1,5 @@
+#!/usr/bin/env python
+
#
# Unit tests for the multiprocessing package
#
diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py
index cd8f565..f3c72e7 100644
--- a/Lib/test/test_sys.py
+++ b/Lib/test/test_sys.py
@@ -336,21 +336,6 @@ class SysModuleTest(unittest.TestCase):
def test_clear_type_cache(self):
sys._clear_type_cache()
- def test_compact_freelists(self):
- sys._compact_freelists()
- r = sys._compact_freelists()
- ## freed blocks shouldn't change
- #self.assertEqual(r[0][2], 0)
- ## fill freelists
- #ints = list(range(10000))
- #floats = [float(i) for i in ints]
- #del ints
- #del floats
- ## should free more than 100 blocks
- #r = sys._compact_freelists()
- #self.assert_(r[0][1] > 100, r[0][1])
- #self.assert_(r[0][2] > 100, r[0][2])
-
def test_ioencoding(self):
import subprocess,os
env = dict(os.environ)