[7.2.x] Update import mode documentation to not refer to __import__() anymore. (#10751)
Co-authored-by: Manuel Jacob <me@manueljacob.de>
This commit is contained in:
		
							parent
							
								
									79108bf9a3
								
							
						
					
					
						commit
						cee8d6f274
					
				| 
						 | 
				
			
			@ -16,7 +16,7 @@ import process can be controlled through the ``--import-mode`` command-line flag
 | 
			
		|||
these values:
 | 
			
		||||
 | 
			
		||||
* ``prepend`` (default): the directory path containing each module will be inserted into the *beginning*
 | 
			
		||||
  of :py:data:`sys.path` if not already there, and then imported with the :func:`__import__ <__import__>` builtin.
 | 
			
		||||
  of :py:data:`sys.path` if not already there, and then imported with the :func:`importlib.import_module <importlib.import_module>` function.
 | 
			
		||||
 | 
			
		||||
  This requires test module names to be unique when the test directory tree is not arranged in
 | 
			
		||||
  packages, because the modules will put in :py:data:`sys.modules` after importing.
 | 
			
		||||
| 
						 | 
				
			
			@ -24,7 +24,7 @@ these values:
 | 
			
		|||
  This is the classic mechanism, dating back from the time Python 2 was still supported.
 | 
			
		||||
 | 
			
		||||
* ``append``: the directory containing each module is appended to the end of :py:data:`sys.path` if not already
 | 
			
		||||
  there, and imported with ``__import__``.
 | 
			
		||||
  there, and imported with :func:`importlib.import_module <importlib.import_module>`.
 | 
			
		||||
 | 
			
		||||
  This better allows to run test modules against installed versions of a package even if the
 | 
			
		||||
  package under test has the same import root. For example:
 | 
			
		||||
| 
						 | 
				
			
			@ -43,7 +43,7 @@ these values:
 | 
			
		|||
  Same as ``prepend``, requires test module names to be unique when the test directory tree is
 | 
			
		||||
  not arranged in packages, because the modules will put in :py:data:`sys.modules` after importing.
 | 
			
		||||
 | 
			
		||||
* ``importlib``: new in pytest-6.0, this mode uses :mod:`importlib` to import test modules. This gives full control over the import process, and doesn't require changing :py:data:`sys.path`.
 | 
			
		||||
* ``importlib``: new in pytest-6.0, this mode uses more fine control mechanisms provided by :mod:`importlib` to import test modules. This gives full control over the import process, and doesn't require changing :py:data:`sys.path`.
 | 
			
		||||
 | 
			
		||||
  For this reason this doesn't require test module names to be unique.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -464,14 +464,14 @@ def import_path(
 | 
			
		|||
 | 
			
		||||
    * `mode == ImportMode.prepend`: the directory containing the module (or package, taking
 | 
			
		||||
      `__init__.py` files into account) will be put at the *start* of `sys.path` before
 | 
			
		||||
      being imported with `__import__.
 | 
			
		||||
      being imported with `importlib.import_module`.
 | 
			
		||||
 | 
			
		||||
    * `mode == ImportMode.append`: same as `prepend`, but the directory will be appended
 | 
			
		||||
      to the end of `sys.path`, if not already in `sys.path`.
 | 
			
		||||
 | 
			
		||||
    * `mode == ImportMode.importlib`: uses more fine control mechanisms provided by `importlib`
 | 
			
		||||
      to import the module, which avoids having to use `__import__` and muck with `sys.path`
 | 
			
		||||
      at all. It effectively allows having same-named test modules in different places.
 | 
			
		||||
      to import the module, which avoids having to muck with `sys.path` at all. It effectively
 | 
			
		||||
      allows having same-named test modules in different places.
 | 
			
		||||
 | 
			
		||||
    :param root:
 | 
			
		||||
        Used as an anchor when mode == ImportMode.importlib to obtain
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue