[docs] [issue12645] test.support. import_fresh_module - incorrect doc

Eli Bendersky report at bugs.python.org
Wed Jul 27 20:03:35 CEST 2011

New submission from Eli Bendersky <eliben at gmail.com>:

>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:
 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.

assignee: docs at python
components: Documentation
keywords: easy
messages: 141255
nosy: docs at python, eli.bendersky, ezio.melotti
priority: normal
severity: normal
status: open
title: test.support. import_fresh_module - incorrect doc
versions: Python 2.7, Python 3.3

Python tracker <report at bugs.python.org>

More information about the docs mailing list