49 lines
998 B
Python
49 lines
998 B
Python
# Copyright (c) IPython Development Team.
|
|
# Distributed under the terms of the Modified BSD License.
|
|
|
|
import os
|
|
import shutil
|
|
import sys
|
|
import tempfile
|
|
|
|
try:
|
|
from unittest.mock import patch
|
|
except ImportError:
|
|
from mock import patch
|
|
|
|
from jupyter_core import paths as jpaths
|
|
from IPython import paths as ipaths
|
|
from ipykernel.kernelspec import install
|
|
|
|
pjoin = os.path.join
|
|
|
|
tmp = None
|
|
patchers = []
|
|
|
|
def 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)
|
|
|
|
|
|
def teardown():
|
|
for p in patchers:
|
|
p.stop()
|
|
|
|
try:
|
|
shutil.rmtree(tmp)
|
|
except (OSError, IOError):
|
|
# no such file
|
|
pass
|