diff options
author | Thomas Wouters <thomas@python.org> | 2007-09-08 17:39:28 (GMT) |
---|---|---|
committer | Thomas Wouters <thomas@python.org> | 2007-09-08 17:39:28 (GMT) |
commit | 89d996e5c28d820e9bc91e0c025f47c754ae784c (patch) | |
tree | 98369aeb1e51786066cb7f4f5421b5ed1bbb8747 /Lib | |
parent | 4a625c33c1ca9370b96cb00ecb2a1958a093e0b5 (diff) | |
download | cpython-89d996e5c28d820e9bc91e0c025f47c754ae784c.zip cpython-89d996e5c28d820e9bc91e0c025f47c754ae784c.tar.gz cpython-89d996e5c28d820e9bc91e0c025f47c754ae784c.tar.bz2 |
Merged revisions 57778-58052 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r57820 | georg.brandl | 2007-08-31 08:59:27 +0200 (Fri, 31 Aug 2007) | 2 lines
Document new shorthand notation for index entries.
........
r57827 | georg.brandl | 2007-08-31 10:47:51 +0200 (Fri, 31 Aug 2007) | 2 lines
Fix subitem markup.
........
r57833 | martin.v.loewis | 2007-08-31 12:01:07 +0200 (Fri, 31 Aug 2007) | 1 line
Mark registry components as 64-bit on Win64.
........
r57854 | bill.janssen | 2007-08-31 21:02:23 +0200 (Fri, 31 Aug 2007) | 1 line
deprecate use of FakeSocket
........
r57855 | bill.janssen | 2007-08-31 21:02:46 +0200 (Fri, 31 Aug 2007) | 1 line
remove mentions of socket.ssl in comments
........
r57856 | bill.janssen | 2007-08-31 21:03:31 +0200 (Fri, 31 Aug 2007) | 1 line
remove use of non-existent SSLFakeSocket in apparently untested code
........
r57859 | martin.v.loewis | 2007-09-01 08:36:03 +0200 (Sat, 01 Sep 2007) | 3 lines
Bug #1737210: Change Manufacturer of Windows installer to PSF.
Will backport to 2.5.
........
r57865 | georg.brandl | 2007-09-01 09:51:24 +0200 (Sat, 01 Sep 2007) | 2 lines
Fix RST link (backport from Py3k).
........
r57876 | georg.brandl | 2007-09-01 17:49:49 +0200 (Sat, 01 Sep 2007) | 2 lines
Document sets' ">" and "<" operations (backport from py3k).
........
r57878 | skip.montanaro | 2007-09-01 19:40:03 +0200 (Sat, 01 Sep 2007) | 4 lines
Added a note and examples to explain that re.split does not split on an
empty pattern match. (issue 852532).
........
r57879 | walter.doerwald | 2007-09-01 20:18:09 +0200 (Sat, 01 Sep 2007) | 2 lines
Fix wrong function names.
........
r57880 | walter.doerwald | 2007-09-01 20:34:05 +0200 (Sat, 01 Sep 2007) | 2 lines
Fix typo.
........
r57889 | andrew.kuchling | 2007-09-01 22:31:59 +0200 (Sat, 01 Sep 2007) | 1 line
Markup fix
........
r57892 | andrew.kuchling | 2007-09-01 22:43:36 +0200 (Sat, 01 Sep 2007) | 1 line
Add various items
........
r57895 | andrew.kuchling | 2007-09-01 23:17:58 +0200 (Sat, 01 Sep 2007) | 1 line
Wording change
........
r57896 | andrew.kuchling | 2007-09-01 23:18:31 +0200 (Sat, 01 Sep 2007) | 1 line
Add more items
........
r57904 | ronald.oussoren | 2007-09-02 11:46:07 +0200 (Sun, 02 Sep 2007) | 3 lines
Macosx: this patch ensures that the value of MACOSX_DEPLOYMENT_TARGET used
by the Makefile is also used at configure-time.
........
r57925 | georg.brandl | 2007-09-03 09:16:46 +0200 (Mon, 03 Sep 2007) | 2 lines
Fix #883466: don't allow Unicode as arguments to quopri and uu codecs.
........
r57936 | matthias.klose | 2007-09-04 01:33:04 +0200 (Tue, 04 Sep 2007) | 2 lines
- Added support for linking the bsddb module against BerkeleyDB 4.6.x.
........
r57954 | mark.summerfield | 2007-09-04 10:16:15 +0200 (Tue, 04 Sep 2007) | 3 lines
Added cross-references plus a note about dict & list shallow copying.
........
r57958 | martin.v.loewis | 2007-09-04 11:51:57 +0200 (Tue, 04 Sep 2007) | 3 lines
Document that we rely on the OS to release the crypto
context. Fixes #1626801.
........
r57960 | martin.v.loewis | 2007-09-04 15:13:14 +0200 (Tue, 04 Sep 2007) | 3 lines
Patch #1388440: Add set_completion_display_matches_hook and
get_completion_type to readline.
........
r57961 | martin.v.loewis | 2007-09-04 16:19:28 +0200 (Tue, 04 Sep 2007) | 3 lines
Patch #1031213: Decode source line in SyntaxErrors back to its original
source encoding. Will backport to 2.5.
........
r57972 | matthias.klose | 2007-09-04 20:17:36 +0200 (Tue, 04 Sep 2007) | 3 lines
- Makefile.pre.in(buildbottest): Run an optional script pybuildbot.identify
to include some information about the build environment.
........
r57973 | matthias.klose | 2007-09-04 21:05:38 +0200 (Tue, 04 Sep 2007) | 2 lines
- Makefile.pre.in(buildbottest): Remove whitespace at eol.
........
r57975 | matthias.klose | 2007-09-04 22:46:02 +0200 (Tue, 04 Sep 2007) | 2 lines
- Fix libffi configure for hppa*-*-linux* | parisc*-*-linux*.
........
r57980 | bill.janssen | 2007-09-05 02:46:27 +0200 (Wed, 05 Sep 2007) | 1 line
SSL certificate distinguished names should be represented by tuples
........
r57985 | martin.v.loewis | 2007-09-05 08:39:17 +0200 (Wed, 05 Sep 2007) | 3 lines
Patch #1105: Explain that one needs to build the solution
to get dependencies right.
........
r57987 | armin.rigo | 2007-09-05 09:51:21 +0200 (Wed, 05 Sep 2007) | 4 lines
PyDict_GetItem() returns a borrowed reference.
There are probably a number of places that are open to attacks
such as the following one, in bltinmodule.c:min_max().
........
r57991 | martin.v.loewis | 2007-09-05 13:47:34 +0200 (Wed, 05 Sep 2007) | 3 lines
Patch #786737: Allow building in a tree of symlinks pointing to
a readonly source.
........
r57993 | georg.brandl | 2007-09-05 15:36:44 +0200 (Wed, 05 Sep 2007) | 2 lines
Backport from Py3k: Bug #1684991: explain lookup semantics for __special__ methods (new-style classes only).
........
r58004 | armin.rigo | 2007-09-06 10:30:51 +0200 (Thu, 06 Sep 2007) | 4 lines
Patch #1733973 by peaker:
ptrace_enter_call() assumes no exception is currently set.
This assumption is broken when throwing into a generator.
........
r58006 | armin.rigo | 2007-09-06 11:30:38 +0200 (Thu, 06 Sep 2007) | 4 lines
PyDict_GetItem() returns a borrowed reference.
This attack is against ceval.c:IMPORT_NAME, which calls an
object (__builtin__.__import__) without holding a reference to it.
........
r58013 | georg.brandl | 2007-09-06 16:49:56 +0200 (Thu, 06 Sep 2007) | 2 lines
Backport from 3k: #1116: fix reference to old filename.
........
r58021 | thomas.heller | 2007-09-06 22:26:20 +0200 (Thu, 06 Sep 2007) | 1 line
Fix typo: c_float represents to C float type.
........
r58022 | skip.montanaro | 2007-09-07 00:29:06 +0200 (Fri, 07 Sep 2007) | 3 lines
If this is correct for py3k branch and it's already in the release25-maint
branch, seems like it ought to be on the trunk as well.
........
r58023 | gregory.p.smith | 2007-09-07 00:59:59 +0200 (Fri, 07 Sep 2007) | 4 lines
Apply the fix from Issue1112 to make this test more robust and keep
windows happy.
........
r58031 | brett.cannon | 2007-09-07 05:17:50 +0200 (Fri, 07 Sep 2007) | 4 lines
Make uuid1 and uuid4 tests conditional on whether ctypes can be imported;
implementation of either function depends on ctypes but uuid as a whole does
not.
........
r58032 | brett.cannon | 2007-09-07 06:18:30 +0200 (Fri, 07 Sep 2007) | 6 lines
Fix a crasher where Python code managed to infinitely recurse in C code without
ever going back out to Python code in PyObject_Call(). Required introducing a
static RuntimeError instance so that normalizing an exception there is no
reliance on a recursive call that would put the exception system over the
recursion check itself.
........
r58034 | thomas.heller | 2007-09-07 08:32:17 +0200 (Fri, 07 Sep 2007) | 1 line
Add a 'c_longdouble' type to the ctypes module.
........
r58035 | thomas.heller | 2007-09-07 11:30:40 +0200 (Fri, 07 Sep 2007) | 1 line
Remove unneeded #include.
........
r58036 | thomas.heller | 2007-09-07 11:33:24 +0200 (Fri, 07 Sep 2007) | 6 lines
Backport from py3k branch:
Add a workaround for a strange bug on win64, when _ctypes is compiled
with the SDK compiler. This should fix the failing
Lib\ctypes\test\test_as_parameter.py test.
........
r58037 | georg.brandl | 2007-09-07 16:14:40 +0200 (Fri, 07 Sep 2007) | 2 lines
Fix a wrong indentation for sublists.
........
r58043 | georg.brandl | 2007-09-07 22:10:49 +0200 (Fri, 07 Sep 2007) | 2 lines
#1095: ln -f doesn't work portably, fix in Makefile.
........
r58049 | skip.montanaro | 2007-09-08 02:34:17 +0200 (Sat, 08 Sep 2007) | 1 line
be explicit about the actual location of the missing file
........
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/ctypes/__init__.py | 5 | ||||
-rw-r--r-- | Lib/ctypes/test/test_arrays.py | 2 | ||||
-rw-r--r-- | Lib/ctypes/test/test_callbacks.py | 4 | ||||
-rw-r--r-- | Lib/ctypes/test/test_cfuncs.py | 12 | ||||
-rw-r--r-- | Lib/ctypes/test/test_functions.py | 12 | ||||
-rw-r--r-- | Lib/ctypes/test/test_repr.py | 2 | ||||
-rw-r--r-- | Lib/distutils/dep_util.py | 3 | ||||
-rw-r--r-- | Lib/httplib.py | 4 | ||||
-rw-r--r-- | Lib/imaplib.py | 4 | ||||
-rwxr-xr-x | Lib/smtplib.py | 6 | ||||
-rw-r--r-- | Lib/test/crashers/infinite_rec_1.py | 11 | ||||
-rw-r--r-- | Lib/test/crashers/infinite_rec_2.py | 10 | ||||
-rw-r--r-- | Lib/test/test_descr.py | 18 | ||||
-rw-r--r-- | Lib/test/test_ssl.py | 13 | ||||
-rw-r--r-- | Lib/test/test_uuid.py | 12 |
15 files changed, 78 insertions, 40 deletions
diff --git a/Lib/ctypes/__init__.py b/Lib/ctypes/__init__.py index f55d194..c413127 100644 --- a/Lib/ctypes/__init__.py +++ b/Lib/ctypes/__init__.py @@ -188,6 +188,11 @@ class c_double(_SimpleCData): _type_ = "d" _check_size(c_double) +class c_longdouble(_SimpleCData): + _type_ = "D" +if sizeof(c_longdouble) == sizeof(c_double): + c_longdouble = c_double + if _calcsize("l") == _calcsize("q"): # if long and long long have the same size, make c_longlong an alias for c_long c_longlong = c_long diff --git a/Lib/ctypes/test/test_arrays.py b/Lib/ctypes/test/test_arrays.py index f487013..f8bce5a 100644 --- a/Lib/ctypes/test/test_arrays.py +++ b/Lib/ctypes/test/test_arrays.py @@ -4,7 +4,7 @@ from ctypes import * formats = "bBhHiIlLqQfd" formats = c_byte, c_ubyte, c_short, c_ushort, c_int, c_uint, \ - c_long, c_ulonglong, c_float, c_double + c_long, c_ulonglong, c_float, c_double, c_longdouble class ArrayTestCase(unittest.TestCase): def test_simple(self): diff --git a/Lib/ctypes/test/test_callbacks.py b/Lib/ctypes/test/test_callbacks.py index 9b2ea8c..d870eb4 100644 --- a/Lib/ctypes/test/test_callbacks.py +++ b/Lib/ctypes/test/test_callbacks.py @@ -77,6 +77,10 @@ class Callbacks(unittest.TestCase): self.check_type(c_double, 3.14) self.check_type(c_double, -3.14) + def test_longdouble(self): + self.check_type(c_longdouble, 3.14) + self.check_type(c_longdouble, -3.14) + def test_char(self): self.check_type(c_char, b"x") self.check_type(c_char, b"a") diff --git a/Lib/ctypes/test/test_cfuncs.py b/Lib/ctypes/test/test_cfuncs.py index 63564a8..8f97fc4 100644 --- a/Lib/ctypes/test/test_cfuncs.py +++ b/Lib/ctypes/test/test_cfuncs.py @@ -158,6 +158,18 @@ class CFunctions(unittest.TestCase): self.failUnlessEqual(self._dll.tf_bd(0, 42.), 14.) self.failUnlessEqual(self.S(), 42) + def test_longdouble(self): + self._dll.tf_D.restype = c_longdouble + self._dll.tf_D.argtypes = (c_longdouble,) + self.failUnlessEqual(self._dll.tf_D(42.), 14.) + self.failUnlessEqual(self.S(), 42) + + def test_longdouble_plus(self): + self._dll.tf_bD.restype = c_longdouble + self._dll.tf_bD.argtypes = (c_byte, c_longdouble) + self.failUnlessEqual(self._dll.tf_bD(0, 42.), 14.) + self.failUnlessEqual(self.S(), 42) + def test_callwithresult(self): def process_result(result): return result * 2 diff --git a/Lib/ctypes/test/test_functions.py b/Lib/ctypes/test/test_functions.py index d7a3edf..3af11cc 100644 --- a/Lib/ctypes/test/test_functions.py +++ b/Lib/ctypes/test/test_functions.py @@ -143,6 +143,18 @@ class FunctionTestCase(unittest.TestCase): self.failUnlessEqual(result, -21) self.failUnlessEqual(type(result), float) + def test_longdoubleresult(self): + f = dll._testfunc_D_bhilfD + f.argtypes = [c_byte, c_short, c_int, c_long, c_float, c_longdouble] + f.restype = c_longdouble + result = f(1, 2, 3, 4, 5.0, 6.0) + self.failUnlessEqual(result, 21) + self.failUnlessEqual(type(result), float) + + result = f(-1, -2, -3, -4, -5.0, -6.0) + self.failUnlessEqual(result, -21) + self.failUnlessEqual(type(result), float) + def test_longlongresult(self): try: c_longlong diff --git a/Lib/ctypes/test/test_repr.py b/Lib/ctypes/test/test_repr.py index 8e69444..3f1e819 100644 --- a/Lib/ctypes/test/test_repr.py +++ b/Lib/ctypes/test/test_repr.py @@ -4,7 +4,7 @@ import unittest subclasses = [] for base in [c_byte, c_short, c_int, c_long, c_longlong, c_ubyte, c_ushort, c_uint, c_ulong, c_ulonglong, - c_float, c_double, c_bool]: + c_float, c_double, c_longdouble, c_bool]: class X(base): pass subclasses.append(X) diff --git a/Lib/distutils/dep_util.py b/Lib/distutils/dep_util.py index a9d589a..07b3549 100644 --- a/Lib/distutils/dep_util.py +++ b/Lib/distutils/dep_util.py @@ -17,7 +17,8 @@ def newer (source, target): Raise DistutilsFileError if 'source' does not exist. """ if not os.path.exists(source): - raise DistutilsFileError("file '%s' does not exist" % source) + raise DistutilsFileError("file '%s' does not exist" % + os.path.abspath(source)) if not os.path.exists(target): return 1 diff --git a/Lib/httplib.py b/Lib/httplib.py index a6ac4e3..3a830182 100644 --- a/Lib/httplib.py +++ b/Lib/httplib.py @@ -71,6 +71,7 @@ import io import mimetools import socket from urlparse import urlsplit +import warnings __all__ = ["HTTPResponse", "HTTPConnection", "HTTPException", "NotConnected", "UnknownProtocol", @@ -988,6 +989,9 @@ else: def FakeSocket (sock, sslobj): + warnings.warn("FakeSocket is deprecated, and won't be in 3.x. " + + "Use the result of ssl.sslsocket directly instead.", + DeprecationWarning, stacklevel=2) return sslobj __all__.append("HTTPSConnection") diff --git a/Lib/imaplib.py b/Lib/imaplib.py index 0a97372..78d17f8 100644 --- a/Lib/imaplib.py +++ b/Lib/imaplib.py @@ -1165,7 +1165,6 @@ else: def readline(self): """Read line from remote.""" - # NB: socket.ssl needs a "readline" method, or perhaps a "makefile" method. line = [] while 1: char = self.sslobj.read(1) @@ -1175,7 +1174,6 @@ else: def send(self, data): """Send data to remote.""" - # NB: socket.ssl needs a "sendall" method to match socket objects. bytes = len(data) while bytes > 0: sent = self.sslobj.write(data) @@ -1201,7 +1199,7 @@ else: def ssl(self): """Return SSLObject instance used to communicate with the IMAP4 server. - ssl = <instance>.socket.ssl() + ssl = ssl.sslsocket(<instance>.socket) """ return self.sslobj diff --git a/Lib/smtplib.py b/Lib/smtplib.py index 7423ae0..5e4ebe8 100755 --- a/Lib/smtplib.py +++ b/Lib/smtplib.py @@ -161,7 +161,6 @@ try: except ImportError: _have_ssl = False else: - class SSLFakeFile: """A fake file like object that really wraps a SSLObject. @@ -722,9 +721,8 @@ if _have_ssl: def _get_socket(self, host, port, timeout): if self.debuglevel > 0: print('connect:', (host, port), file=stderr) self.sock = socket.create_connection((host, port), timeout) - sslobj = socket.ssl(self.sock, self.keyfile, self.certfile) - self.sock = SSLFakeSocket(self.sock, sslobj) - self.file = SSLFakeFile(sslobj) + self.sock = ssl.sslsocket(self.sock, self.keyfile, self.certfile) + self.file = SSLFakeFile(self.sock) __all__.append("SMTP_SSL") diff --git a/Lib/test/crashers/infinite_rec_1.py b/Lib/test/crashers/infinite_rec_1.py deleted file mode 100644 index 573a509..0000000 --- a/Lib/test/crashers/infinite_rec_1.py +++ /dev/null @@ -1,11 +0,0 @@ - -# http://python.org/sf/1202533 - -import new, operator - -class A: - pass -A.__mul__ = new.instancemethod(operator.mul, None, A) - -if __name__ == '__main__': - A()*2 # segfault: infinite recursion in C diff --git a/Lib/test/crashers/infinite_rec_2.py b/Lib/test/crashers/infinite_rec_2.py deleted file mode 100644 index 5a14b33..0000000 --- a/Lib/test/crashers/infinite_rec_2.py +++ /dev/null @@ -1,10 +0,0 @@ - -# http://python.org/sf/1202533 - -class A(str): - __get__ = getattr - -if __name__ == '__main__': - a = A('a') - A.a = a - a.a # segfault: infinite recursion in C diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py index bfa6a64..12bec1a 100644 --- a/Lib/test/test_descr.py +++ b/Lib/test/test_descr.py @@ -4,6 +4,7 @@ from test.test_support import verify, vereq, verbose, TestFailed, TESTFN from test.test_support import get_original_stdout from copy import deepcopy import types +import new def veris(a, b): if a is not b: @@ -1834,6 +1835,10 @@ def specials(): ## unsafecmp(1, 1L) ## unsafecmp(1L, 1) +def recursions(): + if verbose: + print("Testing recursion checks ...") + ## class Letter(str): ## def __new__(cls, letter): ## if letter == 'EPS': @@ -1843,7 +1848,6 @@ def specials(): ## if not self: ## return 'EPS' ## return self - ## # sys.stdout needs to be the original to trigger the recursion bug ## import sys ## test_stdout = sys.stdout @@ -1857,6 +1861,17 @@ def specials(): ## raise TestFailed, "expected a RuntimeError for print recursion" ## sys.stdout = test_stdout + # Bug #1202533. + class A(object): + pass + A.__mul__ = new.instancemethod(lambda self, x: self * x, None, A) + try: + A()*2 + except RuntimeError: + pass + else: + raise TestFailed("expected a RuntimeError") + def weakrefs(): if verbose: print("Testing weak references...") import weakref @@ -4153,6 +4168,7 @@ def test_main(): overloading() methods() specials() + recursions() weakrefs() properties() supers() diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py index 35c6af9..04daab2 100644 --- a/Lib/test/test_ssl.py +++ b/Lib/test/test_ssl.py @@ -137,18 +137,15 @@ class ConnectedTests(unittest.TestCase): cert = c2.getpeercert() if not cert: raise test_support.TestFailed("Can't get peer certificate.") + if test_support.verbose: + sys.stdout.write(pprint.pformat(cert) + '\n') if not cert.has_key('subject'): raise test_support.TestFailed( "No subject field in certificate: %s." % pprint.pformat(cert)) - if not (cert['subject'].has_key('organizationName')): - raise test_support.TestFailed( - "No 'organizationName' field in certificate subject: %s." % - pprint.pformat(cert)) - if (cert['subject']['organizationName'] != - "Python Software Foundation"): + if not ('organizationName', 'Python Software Foundation') in cert['subject']: raise test_support.TestFailed( - "Invalid 'organizationName' field in certificate subject; " + "Missing or invalid 'organizationName' field in certificate subject; " "should be 'Python Software Foundation'."); c2.close() @@ -336,7 +333,7 @@ def create_cert_files(hostname=None): def test_main(verbose=False): if skip_expected: - raise test_support.TestSkipped("socket module has no ssl support") + raise test_support.TestSkipped("No SSL support") global CERTFILE CERTFILE = os.path.join(os.path.dirname(__file__) or os.curdir, diff --git a/Lib/test/test_uuid.py b/Lib/test/test_uuid.py index 5ccdcb1..92d6294 100644 --- a/Lib/test/test_uuid.py +++ b/Lib/test/test_uuid.py @@ -364,6 +364,12 @@ class TestUUID(TestCase): self.assertEqual(node1, node2) def test_uuid1(self): + # uuid1 requires ctypes. + try: + import ctypes + except ImportError: + return + equal = self.assertEqual # Make sure uuid1() generates UUIDs that are actually version 1. @@ -417,6 +423,12 @@ class TestUUID(TestCase): equal(str(u), v) def test_uuid4(self): + # uuid4 requires ctypes. + try: + import ctypes + except ImportError: + return + equal = self.assertEqual # Make sure uuid4() generates UUIDs that are actually version 4. |