This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author eli.bendersky
Recipients docs@python, eli.bendersky, ezio.melotti
Date 2011-07-27.18:03:34
SpamBayes Score 3.4840686e-11
Marked as misclassified No
Message-id <1311789815.76.0.639942891335.issue12645@psf.upfronthosting.co.za>
In-reply-to
Content
From Ezio Melotti's email to python-dev:


    diff --git a/Doc/library/test.rst b/Doc/library/test.rst
    --- a/Doc/library/test.rst
    +++ b/Doc/library/test.rst
    @@ -447,7 +447,7 @@
        Module and package deprecation messages are suppressed during this import
        if *deprecated* is ``True``.

    -   This function will raise :exc:`unittest.SkipTest` is the named module
    +   This function will raise :exc:`unittest.SkipTest` if the named module


Actually I think this is no longer true.  import_fresh_module raises an ImportError if *name* can't be imported, or returns None if the fresh module is not found.

Its use case is to enable or block accelerations for modules that optionally provide one.  All the modules that currently use import_fresh_module are (afaik) always available (json, warnings, heapq), so raising SkipTest when the module is missing is not useful now.
It returns None in the case an acceleration is missing, so e.g. in "cjson = import_fresh_module('json', fresh=['_json'])" cjson will be None and it will be possible to do things like @skipUnless(cjson, 'requires _json').  Here raising an ImportError will defeat (part of) the purpose of the function, i.e. avoiding:
try:
 import _json
except ImportError:
 _json = None

and raising a SkipTest when the accelerations are missing is not an option if there are other tests (e.g. the tests for the Python implementation).

These changes come from http://hg.python.org/cpython/rev/c1a12a308c5b .  Before the change import_fresh_module was still returning the module (e.g. json) even when the acceleration (fresh=['_json']) was missing, and the C tests were run twice using the same pure-python module used for the Py ones.

The typo and the wrong doc is also on 2.7.
History
Date User Action Args
2011-07-27 18:03:35eli.benderskysetrecipients: + eli.bendersky, ezio.melotti, docs@python
2011-07-27 18:03:35eli.benderskysetmessageid: <1311789815.76.0.639942891335.issue12645@psf.upfronthosting.co.za>
2011-07-27 18:03:35eli.benderskylinkissue12645 messages
2011-07-27 18:03:34eli.benderskycreate