50 lines
998 B
Python
50 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
|