diff --git a/jedi/plugins/pytest.py b/jedi/plugins/pytest.py index 76ff84ee..f9b04284 100644 --- a/jedi/plugins/pytest.py +++ b/jedi/plugins/pytest.py @@ -129,11 +129,12 @@ def _iter_pytest_modules(module_context, skip_own_module=False): sys_path = module_context.inference_state.get_sys_path() while any(folder.path.startswith(p) for p in sys_path): file_io = folder.get_file_io('conftest.py') - try: - m = load_module_from_path(module_context.inference_state, file_io) - yield m.as_context() - except FileNotFoundError: - pass + if file_io.path != module_context.py__file__(): + try: + m = load_module_from_path(module_context.inference_state, file_io) + yield m.as_context() + except FileNotFoundError: + pass folder = folder.get_parent_folder() for names in _PYTEST_FIXTURE_MODULES: diff --git a/test/completion/conftest.py b/test/completion/conftest.py index 01ad76c5..c7c14978 100644 --- a/test/completion/conftest.py +++ b/test/completion/conftest.py @@ -20,3 +20,10 @@ def my_not_existing_fixture(): @pytest.fixture() def inheritance_fixture(): return '' + + +@pytest.fixture +def testdir(testdir): + #? ['chdir'] + testdir.chdir + return testdir diff --git a/test/run.py b/test/run.py index 26a5421d..f9418dfa 100755 --- a/test/run.py +++ b/test/run.py @@ -206,7 +206,7 @@ class IntegrationTestCase(BaseTestCase): TEST_GOTO: self.run_goto, TEST_REFERENCES: self.run_find_references, } - if self.path.endswith('pytest.py') \ + if (self.path.endswith('pytest.py') or self.path.endswith('conftest.py')) \ and environment.executable != os.path.realpath(sys.executable): # It's not guarantueed that pytest is installed in test # environments, if we're not running in the same environment that