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<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.
>
>
Ezio, thanks. I opened issue 12645 to track this.

Eli
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to