mirror of
https://github.com/python/cpython.git
synced 2025-10-10 00:43:41 +00:00
Merged revisions 77185-77188,77262,77313,77317,77331-77333,77337-77338 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r77185 | andrew.kuchling | 2009-12-31 10:17:05 -0600 (Thu, 31 Dec 2009) | 1 line Add some items ........ r77186 | benjamin.peterson | 2009-12-31 10:28:24 -0600 (Thu, 31 Dec 2009) | 1 line update expat comment ........ r77187 | andrew.kuchling | 2009-12-31 10:38:53 -0600 (Thu, 31 Dec 2009) | 1 line Add various items ........ r77188 | benjamin.peterson | 2009-12-31 10:49:37 -0600 (Thu, 31 Dec 2009) | 1 line add another advancement ........ r77262 | andrew.kuchling | 2010-01-02 19:15:21 -0600 (Sat, 02 Jan 2010) | 1 line Add a few items ........ r77313 | benjamin.peterson | 2010-01-04 18:04:19 -0600 (Mon, 04 Jan 2010) | 1 line add a test about hashing array.array ........ r77317 | georg.brandl | 2010-01-05 12:14:52 -0600 (Tue, 05 Jan 2010) | 1 line Add Stefan. ........ r77331 | georg.brandl | 2010-01-06 11:43:06 -0600 (Wed, 06 Jan 2010) | 1 line Small fixes to test_cmd: fix signature of do_shell, remove duplicate import, add option to run the custom Cmd class. ........ r77332 | georg.brandl | 2010-01-06 12:02:16 -0600 (Wed, 06 Jan 2010) | 7 lines #5991: let completion for the "help" command include help topics. This also simplifies the Cmd.get_names() method implementation; it was written at a time where dir() didn't consider base class attributes. ........ r77333 | georg.brandl | 2010-01-06 12:26:08 -0600 (Wed, 06 Jan 2010) | 1 line #5950: document that zip files with comments are unsupported in zipimport. ........ r77337 | r.david.murray | 2010-01-06 21:09:08 -0600 (Wed, 06 Jan 2010) | 3 lines Add -W to the 'basics', 'opt', and 'all' test runs so that we get verbose information if a failure happens. ........ r77338 | r.david.murray | 2010-01-06 22:04:28 -0600 (Wed, 06 Jan 2010) | 2 lines Fix inadvertent checkin of debug line. ........
This commit is contained in:
parent
46a9900e09
commit
a28e7028f9
8 changed files with 111 additions and 45 deletions
|
@ -26,6 +26,8 @@ Any files may be present in the ZIP archive, but only files :file:`.py` and
|
||||||
corresponding :file:`.pyc` or :file:`.pyo` file, meaning that if a ZIP archive
|
corresponding :file:`.pyc` or :file:`.pyo` file, meaning that if a ZIP archive
|
||||||
doesn't contain :file:`.pyc` files, importing may be rather slow.
|
doesn't contain :file:`.pyc` files, importing may be rather slow.
|
||||||
|
|
||||||
|
ZIP archives with an archive comment are currently not supported.
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
|
|
||||||
`PKZIP Application Note <http://www.pkware.com/documents/casestudies/APPNOTE.TXT>`_
|
`PKZIP Application Note <http://www.pkware.com/documents/casestudies/APPNOTE.TXT>`_
|
||||||
|
|
|
@ -264,7 +264,9 @@ Some smaller changes made to the core Python language are:
|
||||||
Windows, and on Unix platforms using the gcc, icc, or suncc
|
Windows, and on Unix platforms using the gcc, icc, or suncc
|
||||||
compilers. There may be a small number of platforms where correct
|
compilers. There may be a small number of platforms where correct
|
||||||
operation of this code cannot be guaranteed, so the code is not
|
operation of this code cannot be guaranteed, so the code is not
|
||||||
used on such systems.
|
used on such systems. You can find out which code is being used
|
||||||
|
by checking :data:`sys.float_repr_style`, which will be ``short``
|
||||||
|
if the new code is in use and ``legacy`` if it isn't.
|
||||||
|
|
||||||
Implemented by Eric Smith and Mark Dickinson, using David Gay's
|
Implemented by Eric Smith and Mark Dickinson, using David Gay's
|
||||||
:file:`dtoa.c` library; :issue:`7117`.
|
:file:`dtoa.c` library; :issue:`7117`.
|
||||||
|
@ -358,6 +360,11 @@ Some smaller changes made to the core Python language are:
|
||||||
on the :exc:`IOError` exception when trying to open a directory
|
on the :exc:`IOError` exception when trying to open a directory
|
||||||
on POSIX platforms. (Noted by Jan Kaliszewski; :issue:`4764`.)
|
on POSIX platforms. (Noted by Jan Kaliszewski; :issue:`4764`.)
|
||||||
|
|
||||||
|
* The Python tokenizer now translates line endings itself, so the
|
||||||
|
:func:`compile` built-in function can now accept code using any
|
||||||
|
line-ending convention. Additionally, it no longer requires that the
|
||||||
|
code end in a newline.
|
||||||
|
|
||||||
* Extra parentheses in function definitions are illegal in Python 3.x,
|
* Extra parentheses in function definitions are illegal in Python 3.x,
|
||||||
meaning that you get a syntax error from ``def f((x)): pass``. In
|
meaning that you get a syntax error from ``def f((x)): pass``. In
|
||||||
Python3-warning mode, Python 2.7 will now warn about this odd usage.
|
Python3-warning mode, Python 2.7 will now warn about this odd usage.
|
||||||
|
@ -433,6 +440,8 @@ Several performance enhancements have been added:
|
||||||
Various benchmarks show speedups of between 50% and 150% for long
|
Various benchmarks show speedups of between 50% and 150% for long
|
||||||
integer divisions and modulo operations.
|
integer divisions and modulo operations.
|
||||||
(Contributed by Mark Dickinson; :issue:`5512`.)
|
(Contributed by Mark Dickinson; :issue:`5512`.)
|
||||||
|
Bitwise operations are also significantly faster (initial patch by
|
||||||
|
Gregory Smith; :issue:`1087418`).
|
||||||
|
|
||||||
* The implementation of ``%`` checks for the left-side operand being
|
* The implementation of ``%`` checks for the left-side operand being
|
||||||
a Python string and special-cases it; this results in a 1-3%
|
a Python string and special-cases it; this results in a 1-3%
|
||||||
|
@ -444,6 +453,16 @@ Several performance enhancements have been added:
|
||||||
faster bytecode. (Patch by Antoine Pitrou, back-ported to 2.7
|
faster bytecode. (Patch by Antoine Pitrou, back-ported to 2.7
|
||||||
by Jeffrey Yasskin; :issue:`4715`.)
|
by Jeffrey Yasskin; :issue:`4715`.)
|
||||||
|
|
||||||
|
* Converting an integer or long integer to a decimal string was made
|
||||||
|
faster by special-casing base 10 instead of using a generalized
|
||||||
|
conversion function that supports arbitrary bases.
|
||||||
|
(Patch by Gawain Bolton; :issue:`6713`.)
|
||||||
|
|
||||||
|
* The :meth:`rindex`, :meth:`rpartition`, and :meth:`rsplit` methods
|
||||||
|
of string objects now uses a fast reverse-search algorithm instead of
|
||||||
|
a character-by-character scan. This is often faster by a factor of 10.
|
||||||
|
(Added by Florent Xicluna; :issue:`7462`.)
|
||||||
|
|
||||||
* The :mod:`pickle` and :mod:`cPickle` modules now automatically
|
* The :mod:`pickle` and :mod:`cPickle` modules now automatically
|
||||||
intern the strings used for attribute names, reducing memory usage
|
intern the strings used for attribute names, reducing memory usage
|
||||||
of the objects resulting from unpickling. (Contributed by Jake
|
of the objects resulting from unpickling. (Contributed by Jake
|
||||||
|
@ -453,11 +472,6 @@ Several performance enhancements have been added:
|
||||||
nearly halving the time required to pickle them.
|
nearly halving the time required to pickle them.
|
||||||
(Contributed by Collin Winter; :issue:`5670`.)
|
(Contributed by Collin Winter; :issue:`5670`.)
|
||||||
|
|
||||||
* Converting an integer or long integer to a decimal string was made
|
|
||||||
faster by special-casing base 10 instead of using a generalized
|
|
||||||
conversion function that supports arbitrary bases.
|
|
||||||
(Patch by Gawain Bolton; :issue:`6713`.)
|
|
||||||
|
|
||||||
.. ======================================================================
|
.. ======================================================================
|
||||||
|
|
||||||
New and Improved Modules
|
New and Improved Modules
|
||||||
|
@ -602,6 +616,10 @@ changes, or look through the Subversion logs for all the details.
|
||||||
XXX link to file:///MacDev/svn.python.org/python-trunk/Doc/build/html/distutils/examples.html#reading-the-metadata
|
XXX link to file:///MacDev/svn.python.org/python-trunk/Doc/build/html/distutils/examples.html#reading-the-metadata
|
||||||
(Contributed by Tarek Ziade; :issue:`7457`.)
|
(Contributed by Tarek Ziade; :issue:`7457`.)
|
||||||
|
|
||||||
|
:file:`setup.py` files will now accept a :option:`--no-user-cfg` switch
|
||||||
|
to skip reading the :file:`~/.pydistutils.cfg` file. (Suggested by
|
||||||
|
by Michael Hoffman, and implemented by Paul Winkler; :issue:`1180`.)
|
||||||
|
|
||||||
* The :class:`Fraction` class now accepts two rational numbers
|
* The :class:`Fraction` class now accepts two rational numbers
|
||||||
as arguments to its constructor.
|
as arguments to its constructor.
|
||||||
(Implemented by Mark Dickinson; :issue:`5812`.)
|
(Implemented by Mark Dickinson; :issue:`5812`.)
|
||||||
|
@ -625,14 +643,6 @@ changes, or look through the Subversion logs for all the details.
|
||||||
recorded in a gzipped file by providing an optional timestamp to
|
recorded in a gzipped file by providing an optional timestamp to
|
||||||
the constructor. (Contributed by Jacques Frechet; :issue:`4272`.)
|
the constructor. (Contributed by Jacques Frechet; :issue:`4272`.)
|
||||||
|
|
||||||
* The :mod:`hashlib` module was inconsistent about accepting
|
|
||||||
input as a Unicode object or an object that doesn't support
|
|
||||||
the buffer protocol. The behavior was different depending on
|
|
||||||
whether :mod:`hashlib` was using an external OpenSSL library
|
|
||||||
or its built-in implementations. Python 2.7 makes the
|
|
||||||
behavior consistent, always rejecting such objects by raising a
|
|
||||||
:exc:`TypeError`. (Fixed by Gregory P. Smith; :issue:`3745`.)
|
|
||||||
|
|
||||||
* The default :class:`HTTPResponse` class used by the :mod:`httplib` module now
|
* The default :class:`HTTPResponse` class used by the :mod:`httplib` module now
|
||||||
supports buffering, resulting in much faster reading of HTTP responses.
|
supports buffering, resulting in much faster reading of HTTP responses.
|
||||||
(Contributed by Kristjan Valur Jonsson; :issue:`4879`.)
|
(Contributed by Kristjan Valur Jonsson; :issue:`4879`.)
|
||||||
|
@ -745,6 +755,10 @@ changes, or look through the Subversion logs for all the details.
|
||||||
to store data.
|
to store data.
|
||||||
(Contributed by Tarek Ziade; :issue:`6693`.)
|
(Contributed by Tarek Ziade; :issue:`6693`.)
|
||||||
|
|
||||||
|
* The :mod:`socket` module's :class:`SSL` objects now support the
|
||||||
|
buffer API, which fixed a test suite failure. (Fixed by Antoine Pitrou;
|
||||||
|
:issue:`7133`.)
|
||||||
|
|
||||||
* The :mod:`SocketServer` module's :class:`TCPServer` class now
|
* The :mod:`SocketServer` module's :class:`TCPServer` class now
|
||||||
has a :attr:`disable_nagle_algorithm` class attribute.
|
has a :attr:`disable_nagle_algorithm` class attribute.
|
||||||
The default value is False; if overridden to be True,
|
The default value is False; if overridden to be True,
|
||||||
|
@ -858,6 +872,10 @@ GvR worked on merging them into Python's version of :mod:`unittest`.
|
||||||
whether the two values evaluate to the same object or not.
|
whether the two values evaluate to the same object or not.
|
||||||
(Added by Michael Foord; :issue:`2578`.)
|
(Added by Michael Foord; :issue:`2578`.)
|
||||||
|
|
||||||
|
* :meth:`assertIsInstance` and :meth:`assertNotIsInstance` check whether
|
||||||
|
the resulting object is an instance of a particular class, or of
|
||||||
|
one of a tuple of classes. (Added by Georg Brandl; :issue:`7031`.)
|
||||||
|
|
||||||
* :meth:`assertGreater`, :meth:`assertGreaterEqual`,
|
* :meth:`assertGreater`, :meth:`assertGreaterEqual`,
|
||||||
:meth:`assertLess`, and :meth:`assertLessEqual` compare
|
:meth:`assertLess`, and :meth:`assertLessEqual` compare
|
||||||
two quantities.
|
two quantities.
|
||||||
|
@ -1025,6 +1043,11 @@ Changes to Python's build process and to the C API include:
|
||||||
a :ctype:`long`, an *overflow* flag is set and returned to the caller.
|
a :ctype:`long`, an *overflow* flag is set and returned to the caller.
|
||||||
(Contributed by Case Van Horsen; :issue:`7528`.)
|
(Contributed by Case Van Horsen; :issue:`7528`.)
|
||||||
|
|
||||||
|
* New function: stemming from the rewrite of string-to-float conversion,
|
||||||
|
a new :cfunc:`PyOS_string_to_double` function was added. The old
|
||||||
|
:cfunc:`PyOS_ascii_strtod` and :cfunc:`PyOS_ascii_atof` functions
|
||||||
|
are now deprecated.
|
||||||
|
|
||||||
* New macros: the Python header files now define the following macros:
|
* New macros: the Python header files now define the following macros:
|
||||||
:cmacro:`Py_ISALNUM`,
|
:cmacro:`Py_ISALNUM`,
|
||||||
:cmacro:`Py_ISALPHA`,
|
:cmacro:`Py_ISALPHA`,
|
||||||
|
@ -1067,10 +1090,30 @@ Changes to Python's build process and to the C API include:
|
||||||
|
|
||||||
(Fixed by Thomas Wouters; :issue:`1590864`.)
|
(Fixed by Thomas Wouters; :issue:`1590864`.)
|
||||||
|
|
||||||
|
* The :cfunc:`Py_Finalize` function now calls the internal
|
||||||
|
:func:`threading._shutdown` function; this prevents some exceptions from
|
||||||
|
being raised when an interpreter shuts down.
|
||||||
|
(Patch by Adam Olsen; :issue:`1722344`.)
|
||||||
|
|
||||||
* Global symbols defined by the :mod:`ctypes` module are now prefixed
|
* Global symbols defined by the :mod:`ctypes` module are now prefixed
|
||||||
with ``Py``, or with ``_ctypes``. (Implemented by Thomas
|
with ``Py``, or with ``_ctypes``. (Implemented by Thomas
|
||||||
Heller; :issue:`3102`.)
|
Heller; :issue:`3102`.)
|
||||||
|
|
||||||
|
* New configure option: the :option:`--with-system-expat` switch allows
|
||||||
|
building the :mod:`pyexpat` module to use the system Expat library.
|
||||||
|
(Contributed by Arfrever Frehtes Taifersar Arahesis; :issue:`7609`.)
|
||||||
|
|
||||||
|
* New configure option: Compiling Python with the
|
||||||
|
:option:`--with-valgrind` option will now disable the pymalloc
|
||||||
|
allocator, which is difficult for the Valgrind to analyze correctly.
|
||||||
|
Valgrind will therefore be better at detecting memory leaks and
|
||||||
|
overruns. (Contributed by James Henstridge; :issue:`2422`.)
|
||||||
|
|
||||||
|
* New configure option: you can now supply no arguments to
|
||||||
|
:option:`--with-dbmliborder=` in order to build none of the various
|
||||||
|
DBM modules. (Added by Arfrever Frehtes Taifersar Arahesis;
|
||||||
|
:issue:`6491`.)
|
||||||
|
|
||||||
* The :program:`configure` script now checks for floating-point rounding bugs
|
* The :program:`configure` script now checks for floating-point rounding bugs
|
||||||
on certain 32-bit Intel chips and defines a :cmacro:`X87_DOUBLE_ROUNDING`
|
on certain 32-bit Intel chips and defines a :cmacro:`X87_DOUBLE_ROUNDING`
|
||||||
preprocessor definition. No code currently uses this definition,
|
preprocessor definition. No code currently uses this definition,
|
||||||
|
@ -1083,11 +1126,6 @@ Changes to Python's build process and to the C API include:
|
||||||
* The build process now supports Subversion 1.7. (Contributed by
|
* The build process now supports Subversion 1.7. (Contributed by
|
||||||
Arfrever Frehtes Taifersar Arahesis; :issue:`6094`.)
|
Arfrever Frehtes Taifersar Arahesis; :issue:`6094`.)
|
||||||
|
|
||||||
* Compiling Python with the :option:`--with-valgrind` option will now
|
|
||||||
disable the pymalloc allocator, which is difficult for the Valgrind to
|
|
||||||
analyze correctly. Valgrind will therefore be better at detecting
|
|
||||||
memory leaks and overruns. (Contributed by James Henstridge; :issue:`2422`.)
|
|
||||||
|
|
||||||
|
|
||||||
.. ======================================================================
|
.. ======================================================================
|
||||||
|
|
||||||
|
@ -1139,12 +1177,14 @@ Other Changes and Fixes
|
||||||
The :option:`-r` option also reports the seed that was used
|
The :option:`-r` option also reports the seed that was used
|
||||||
(Added by Collin Winter.)
|
(Added by Collin Winter.)
|
||||||
|
|
||||||
* The :file:`regrtest.py` script now takes a :option:`-j` switch
|
* Another :file:`regrtest.py` switch is :option:`-j`, which
|
||||||
that takes an integer specifying how many tests run in parallel. This
|
takes an integer specifying how many tests run in parallel. This
|
||||||
allows reducing the total runtime on multi-core machines.
|
allows reducing the total runtime on multi-core machines.
|
||||||
This option is compatible with several other options, including the
|
This option is compatible with several other options, including the
|
||||||
:option:`-R` switch which is known to produce long runtimes.
|
:option:`-R` switch which is known to produce long runtimes.
|
||||||
(Added by Antoine Pitrou, :issue:`6152`.)
|
(Added by Antoine Pitrou, :issue:`6152`.) This can also be used
|
||||||
|
with a new :option:`-F` switch that runs selected tests in a loop
|
||||||
|
until they fail. (Added by Antoine Pitrou; :issue:`7312`.)
|
||||||
|
|
||||||
.. ======================================================================
|
.. ======================================================================
|
||||||
|
|
||||||
|
@ -1175,6 +1215,17 @@ that may require changes to your code:
|
||||||
nothing when a negative length is requested, as other file-like
|
nothing when a negative length is requested, as other file-like
|
||||||
objects do. (:issue:`7348`).
|
objects do. (:issue:`7348`).
|
||||||
|
|
||||||
|
For C extensions:
|
||||||
|
|
||||||
|
* C extensions that use integer format codes with the ``PyArg_Parse*``
|
||||||
|
family of functions will now raise a :exc:`TypeError` exception
|
||||||
|
instead of triggering a :exc:`DeprecationWarning` (:issue:`5080`).
|
||||||
|
|
||||||
|
* Use the new :cfunc:`PyOS_string_to_double` function instead of the old
|
||||||
|
:cfunc:`PyOS_ascii_strtod` and :cfunc:`PyOS_ascii_atof` functions,
|
||||||
|
which are now deprecated.
|
||||||
|
|
||||||
|
|
||||||
.. ======================================================================
|
.. ======================================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
18
Lib/cmd.py
18
Lib/cmd.py
|
@ -278,19 +278,15 @@ class Cmd:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def get_names(self):
|
def get_names(self):
|
||||||
# Inheritance says we have to look in class and
|
# This method used to pull in base class attributes
|
||||||
# base classes; order is not important.
|
# at a time dir() didn't do it yet.
|
||||||
names = []
|
return dir(self.__class__)
|
||||||
classes = [self.__class__]
|
|
||||||
while classes:
|
|
||||||
aclass = classes.pop(0)
|
|
||||||
if aclass.__bases__:
|
|
||||||
classes = classes + list(aclass.__bases__)
|
|
||||||
names = names + dir(aclass)
|
|
||||||
return names
|
|
||||||
|
|
||||||
def complete_help(self, *args):
|
def complete_help(self, *args):
|
||||||
return self.completenames(*args)
|
commands = set(self.completenames(*args))
|
||||||
|
topics = set(a[5:] for a in self.get_names()
|
||||||
|
if a.startswith('help_' + args[0]))
|
||||||
|
return list(commands | topics)
|
||||||
|
|
||||||
def do_help(self, arg):
|
def do_help(self, arg):
|
||||||
if arg:
|
if arg:
|
||||||
|
|
|
@ -60,15 +60,17 @@ class samplecmdclass(cmd.Cmd):
|
||||||
>>> mycmd.completenames("12")
|
>>> mycmd.completenames("12")
|
||||||
[]
|
[]
|
||||||
>>> mycmd.completenames("help")
|
>>> mycmd.completenames("help")
|
||||||
['help', 'help']
|
['help']
|
||||||
|
|
||||||
Test for the function complete_help():
|
Test for the function complete_help():
|
||||||
>>> mycmd.complete_help("a")
|
>>> mycmd.complete_help("a")
|
||||||
['add']
|
['add']
|
||||||
>>> mycmd.complete_help("he")
|
>>> mycmd.complete_help("he")
|
||||||
['help', 'help']
|
['help']
|
||||||
>>> mycmd.complete_help("12")
|
>>> mycmd.complete_help("12")
|
||||||
[]
|
[]
|
||||||
|
>>> sorted(mycmd.complete_help(""))
|
||||||
|
['add', 'exit', 'help', 'shell']
|
||||||
|
|
||||||
Test for the function do_help():
|
Test for the function do_help():
|
||||||
>>> mycmd.do_help("testet")
|
>>> mycmd.do_help("testet")
|
||||||
|
@ -144,7 +146,7 @@ class samplecmdclass(cmd.Cmd):
|
||||||
def complete_command(self):
|
def complete_command(self):
|
||||||
print("complete command")
|
print("complete command")
|
||||||
|
|
||||||
def do_shell(self):
|
def do_shell(self, s):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def do_add(self, s):
|
def do_add(self, s):
|
||||||
|
@ -171,6 +173,7 @@ def test_main(verbose=None):
|
||||||
support.run_doctest(test_cmd, verbose)
|
support.run_doctest(test_cmd, verbose)
|
||||||
|
|
||||||
def test_coverage(coverdir):
|
def test_coverage(coverdir):
|
||||||
|
import trace
|
||||||
tracer=trace.Trace(ignoredirs=[sys.prefix, sys.exec_prefix,],
|
tracer=trace.Trace(ignoredirs=[sys.prefix, sys.exec_prefix,],
|
||||||
trace=0, count=1)
|
trace=0, count=1)
|
||||||
tracer.run('reload(cmd);test_main()')
|
tracer.run('reload(cmd);test_main()')
|
||||||
|
@ -181,5 +184,7 @@ def test_coverage(coverdir):
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
if "-c" in sys.argv:
|
if "-c" in sys.argv:
|
||||||
test_coverage('/tmp/cmd.cover')
|
test_coverage('/tmp/cmd.cover')
|
||||||
|
elif "-i" in sys.argv:
|
||||||
|
samplecmdclass().cmdloop()
|
||||||
else:
|
else:
|
||||||
test_main()
|
test_main()
|
||||||
|
|
|
@ -6,8 +6,10 @@
|
||||||
# Licensed to PSF under a Contributor Agreement.
|
# Licensed to PSF under a Contributor Agreement.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
import array
|
||||||
import hashlib
|
import hashlib
|
||||||
from io import StringIO
|
from io import StringIO
|
||||||
|
import itertools
|
||||||
import sys
|
import sys
|
||||||
try:
|
try:
|
||||||
import threading
|
import threading
|
||||||
|
@ -93,6 +95,13 @@ class HashLibTestCase(unittest.TestCase):
|
||||||
|
|
||||||
super(HashLibTestCase, self).__init__(*args, **kwargs)
|
super(HashLibTestCase, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
def test_hash_array(self):
|
||||||
|
a = array.array("b", range(10))
|
||||||
|
constructors = self.constructors_to_test.values()
|
||||||
|
for cons in itertools.chain.from_iterable(constructors):
|
||||||
|
c = cons(a)
|
||||||
|
c.hexdigest()
|
||||||
|
|
||||||
def test_unknown_hash(self):
|
def test_unknown_hash(self):
|
||||||
try:
|
try:
|
||||||
hashlib.new('spam spam spam spam spam')
|
hashlib.new('spam spam spam spam spam')
|
||||||
|
|
|
@ -214,7 +214,7 @@ if [ $err = 0 -a "$BUILD_DISABLED" != "yes" ]; then
|
||||||
## make and run basic tests
|
## make and run basic tests
|
||||||
F=make-test.out
|
F=make-test.out
|
||||||
start=`current_time`
|
start=`current_time`
|
||||||
$PYTHON $REGRTEST_ARGS -u urlfetch >& build/$F
|
$PYTHON $REGRTEST_ARGS -W -u urlfetch >& build/$F
|
||||||
NUM_FAILURES=`count_failures build/$F`
|
NUM_FAILURES=`count_failures build/$F`
|
||||||
place_summary_first build/$F
|
place_summary_first build/$F
|
||||||
update_status "Testing basics ($NUM_FAILURES failures)" "$F" $start
|
update_status "Testing basics ($NUM_FAILURES failures)" "$F" $start
|
||||||
|
@ -222,7 +222,7 @@ if [ $err = 0 -a "$BUILD_DISABLED" != "yes" ]; then
|
||||||
|
|
||||||
F=make-test-opt.out
|
F=make-test-opt.out
|
||||||
start=`current_time`
|
start=`current_time`
|
||||||
$PYTHON -O $REGRTEST_ARGS -u urlfetch >& build/$F
|
$PYTHON -O $REGRTEST_ARGS -W -u urlfetch >& build/$F
|
||||||
NUM_FAILURES=`count_failures build/$F`
|
NUM_FAILURES=`count_failures build/$F`
|
||||||
place_summary_first build/$F
|
place_summary_first build/$F
|
||||||
update_status "Testing opt ($NUM_FAILURES failures)" "$F" $start
|
update_status "Testing opt ($NUM_FAILURES failures)" "$F" $start
|
||||||
|
@ -245,7 +245,7 @@ if [ $err = 0 -a "$BUILD_DISABLED" != "yes" ]; then
|
||||||
start=`current_time`
|
start=`current_time`
|
||||||
## skip curses when running from cron since there's no terminal
|
## skip curses when running from cron since there's no terminal
|
||||||
## skip sound since it's not setup on the PSF box (/dev/dsp)
|
## skip sound since it's not setup on the PSF box (/dev/dsp)
|
||||||
$PYTHON $REGRTEST_ARGS -uall -x test_curses test_linuxaudiodev test_ossaudiodev $_ALWAYS_SKIP >& build/$F
|
$PYTHON $REGRTEST_ARGS -W -uall -x test_curses test_linuxaudiodev test_ossaudiodev &_ALWAYS_SKIP >& build/$F
|
||||||
NUM_FAILURES=`count_failures build/$F`
|
NUM_FAILURES=`count_failures build/$F`
|
||||||
place_summary_first build/$F
|
place_summary_first build/$F
|
||||||
update_status "Testing all except curses and sound ($NUM_FAILURES failures)" "$F" $start
|
update_status "Testing all except curses and sound ($NUM_FAILURES failures)" "$F" $start
|
||||||
|
|
|
@ -20,6 +20,9 @@ for details. When the agreement is signed, please note it in this log.
|
||||||
Permissions History
|
Permissions History
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
|
- Stefan Krah was given SVN access on January 5 2010 by GFB, at
|
||||||
|
suggestion of Mark Dickinson, for work on the decimal module.
|
||||||
|
|
||||||
- Doug Hellmann was given SVN access on September 19 2009 by GFB, at
|
- Doug Hellmann was given SVN access on September 19 2009 by GFB, at
|
||||||
suggestion of Jesse Noller, for documentation work.
|
suggestion of Jesse Noller, for documentation work.
|
||||||
|
|
||||||
|
|
12
setup.py
12
setup.py
|
@ -1108,12 +1108,12 @@ class PyBuildExt(build_ext):
|
||||||
|
|
||||||
# Interface to the Expat XML parser
|
# Interface to the Expat XML parser
|
||||||
#
|
#
|
||||||
# Expat was written by James Clark and is now maintained by a
|
# Expat was written by James Clark and is now maintained by a group of
|
||||||
# group of developers on SourceForge; see www.libexpat.org for
|
# developers on SourceForge; see www.libexpat.org for more information.
|
||||||
# more information. The pyexpat module was written by Paul
|
# The pyexpat module was written by Paul Prescod after a prototype by
|
||||||
# Prescod after a prototype by Jack Jansen. The Expat source
|
# Jack Jansen. The Expat source is included in Modules/expat/. Usage
|
||||||
# is included in Modules/expat/. Usage of a system
|
# of a system shared libexpat.so is possible with --with-system-expat
|
||||||
# shared libexpat.so/expat.dll is not advised.
|
# cofigure option.
|
||||||
#
|
#
|
||||||
# More information on Expat can be found at www.libexpat.org.
|
# More information on Expat can be found at www.libexpat.org.
|
||||||
#
|
#
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue