diff options
author | Georg Brandl <georg@python.org> | 2008-07-16 03:43:04 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2008-07-16 03:43:04 (GMT) |
commit | 86b2fb9d77e483cc56e85bc4c96ac54f55427d39 (patch) | |
tree | 1f0a034d417db72fa03cfb506b0e27daf1dc0a4f /Lib | |
parent | 3ccb78724127e3501067e8693fa15807e2777e9c (diff) | |
download | cpython-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.py | 37 | ||||
-rwxr-xr-x | Lib/fractions.py | 5 | ||||
-rw-r--r-- | Lib/http/client.py | 2 | ||||
-rw-r--r-- | Lib/subprocess.py | 7 | ||||
-rwxr-xr-x | Lib/test/regrtest.py | 6 | ||||
-rw-r--r-- | Lib/test/test_audioop.py | 4 | ||||
-rw-r--r-- | Lib/test/test_bz2.py | 11 | ||||
-rw-r--r-- | Lib/test/test_fractions.py | 8 | ||||
-rw-r--r-- | Lib/test/test_multiprocessing.py | 2 | ||||
-rw-r--r-- | Lib/test/test_sys.py | 15 |
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) |