1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
# Copyright (c) IPython Development Team.
# Distributed under the terms of the Modified BSD License.
import os
import shutil
import sys
import tempfile
from unittest.mock import patch
import pytest
from ipykernel.kernelspec import install
pjoin = os.path.join
tmp = None
patchers: list = []
@pytest.fixture(autouse=True)
def _global_setup():
"""setup temporary env for tests"""
global tmp
tmp = tempfile.mkdtemp()
patchers[:] = [
patch.dict(
os.environ,
{
"HOME": tmp,
# Let tests work with --user install when HOME is changed:
"PYTHONPATH": os.pathsep.join(sys.path),
},
),
]
for p in patchers:
p.start()
# install IPython in the temp home:
install(user=True)
yield
for p in patchers:
p.stop()
try:
shutil.rmtree(tmp) # type:ignore
except OSError:
# no such file
pass
|