From a6512f770262c99de8636688be3169200679e8da Mon Sep 17 00:00:00 2001 From: immerrr Date: Wed, 21 Oct 2015 10:07:01 +0300 Subject: [PATCH] Move clean_jedi_cache fixture to top-level conftest.py Otherwise doctest module running in jedi/ subdirectory will not find it. --- conftest.py | 25 ++++++++++++++++++++++++- test/conftest.py | 24 ------------------------ 2 files changed, 24 insertions(+), 25 deletions(-) diff --git a/conftest.py b/conftest.py index 480a2510..2567fcde 100644 --- a/conftest.py +++ b/conftest.py @@ -1,8 +1,9 @@ import tempfile import shutil -import jedi +import pytest +import jedi collect_ignore = ["setup.py"] @@ -47,3 +48,25 @@ def pytest_unconfigure(config): global jedi_cache_directory_orig, jedi_cache_directory_temp jedi.settings.cache_directory = jedi_cache_directory_orig shutil.rmtree(jedi_cache_directory_temp) + + +@pytest.fixture(scope='session') +def clean_jedi_cache(request): + """ + Set `jedi.settings.cache_directory` to a temporary directory during test. + + Note that you can't use built-in `tmpdir` and `monkeypatch` + fixture here because their scope is 'function', which is not used + in 'session' scope fixture. + + This fixture is activated in ../pytest.ini. + """ + from jedi import settings + old = settings.cache_directory + tmp = tempfile.mkdtemp(prefix='jedi-test-') + settings.cache_directory = tmp + + @request.addfinalizer + def restore(): + settings.cache_directory = old + shutil.rmtree(tmp) diff --git a/test/conftest.py b/test/conftest.py index 6b834146..7349279a 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -1,7 +1,5 @@ import os -import shutil import re -import tempfile import pytest @@ -125,25 +123,3 @@ def isolated_jedi_cache(monkeypatch, tmpdir): """ from jedi import settings monkeypatch.setattr(settings, 'cache_directory', str(tmpdir)) - - -@pytest.fixture(scope='session') -def clean_jedi_cache(request): - """ - Set `jedi.settings.cache_directory` to a temporary directory during test. - - Note that you can't use built-in `tmpdir` and `monkeypatch` - fixture here because their scope is 'function', which is not used - in 'session' scope fixture. - - This fixture is activated in ../pytest.ini. - """ - from jedi import settings - old = settings.cache_directory - tmp = tempfile.mkdtemp(prefix='jedi-test-') - settings.cache_directory = tmp - - @request.addfinalizer - def restore(): - settings.cache_directory = old - shutil.rmtree(tmp)