Pass importmode to import_path in DoctestModule
This allows doctest to be used with namespace modules
This commit is contained in:
		
							parent
							
								
									06738e36df
								
							
						
					
					
						commit
						c34eaaaa1c
					
				|  | @ -0,0 +1 @@ | |||
| Doctests now respect the ``--import-mode`` flag. | ||||
|  | @ -542,7 +542,11 @@ class DoctestModule(pytest.Module): | |||
|             ) | ||||
|         else: | ||||
|             try: | ||||
|                 module = import_path(self.path, root=self.config.rootpath) | ||||
|                 module = import_path( | ||||
|                     self.path, | ||||
|                     root=self.config.rootpath, | ||||
|                     mode=self.config.getoption("importmode"), | ||||
|                 ) | ||||
|             except ImportError: | ||||
|                 if self.config.getvalue("doctest_ignore_import_errors"): | ||||
|                     pytest.skip("unable to import module %r" % self.path) | ||||
|  |  | |||
|  | @ -113,6 +113,28 @@ class TestDoctests: | |||
|         reprec = pytester.inline_run(p) | ||||
|         reprec.assertoutcome(failed=1) | ||||
| 
 | ||||
|     def test_importmode(self, pytester: Pytester): | ||||
|         p = pytester.makepyfile( | ||||
|             **{ | ||||
|                 "namespacepkg/innerpkg/__init__.py": "", | ||||
|                 "namespacepkg/innerpkg/a.py": """ | ||||
|                   def some_func(): | ||||
|                     return 42 | ||||
|                 """, | ||||
|                 "namespacepkg/innerpkg/b.py": """ | ||||
|                   from namespacepkg.innerpkg.a import some_func | ||||
|                   def my_func(): | ||||
|                     ''' | ||||
|                     >>> my_func() | ||||
|                     42 | ||||
|                     ''' | ||||
|                     return some_func() | ||||
|                 """, | ||||
|             } | ||||
|         ) | ||||
|         reprec = pytester.inline_run(p, "--doctest-modules", "--import-mode=importlib") | ||||
|         reprec.assertoutcome(passed=1) | ||||
| 
 | ||||
|     def test_new_pattern(self, pytester: Pytester): | ||||
|         p = pytester.maketxtfile( | ||||
|             xdoc=""" | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue