You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ORPA-pyOpenRPA/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_core/tests/test_application.py

120 lines
2.9 KiB

import os
import shutil
from tempfile import mkdtemp
from ipython_genutils import py3compat
try:
from unittest.mock import patch
except ImportError:
# py2
from mock import patch
import pytest
from traitlets import Integer
from jupyter_core.application import JupyterApp, NoStart
pjoin = os.path.join
def test_basic():
app = JupyterApp()
def test_default_traits():
app = JupyterApp()
for trait_name in app.traits():
value = getattr(app, trait_name)
class DummyApp(JupyterApp):
name = "dummy-app"
m = Integer(0, config=True)
n = Integer(0, config=True)
_dummy_config = """
c.DummyApp.n = 10
"""
def test_custom_config():
app = DummyApp()
td = mkdtemp()
fname = pjoin(td, 'config.py')
with open(fname, 'w') as f:
f.write(_dummy_config)
app.initialize(['--config', fname])
shutil.rmtree(td)
assert app.config_file == fname
assert app.n == 10
def test_cli_override():
app = DummyApp()
td = mkdtemp()
fname = pjoin(td, 'config.py')
with open(fname, 'w') as f:
f.write(_dummy_config)
app.initialize(['--config', fname, '--DummyApp.n=20'])
shutil.rmtree(td)
assert app.n == 20
def test_generate_config():
td = mkdtemp()
app = DummyApp(config_dir=td)
app.initialize(['--generate-config'])
assert app.generate_config
with pytest.raises(NoStart):
app.start()
assert os.path.exists(os.path.join(td, 'dummy_app_config.py'))
def test_load_config():
config_dir = mkdtemp()
wd = mkdtemp()
with open(pjoin(config_dir, 'dummy_app_config.py'), 'w') as f:
f.write('c.DummyApp.m = 1\n')
f.write('c.DummyApp.n = 1')
with patch.object(py3compat, 'getcwd', lambda : wd):
app = DummyApp(config_dir=config_dir)
app.initialize([])
assert app.n == 1, "Loaded config from config dir"
with open(pjoin(wd, 'dummy_app_config.py'), 'w') as f:
f.write('c.DummyApp.n = 2')
with patch.object(py3compat, 'getcwd', lambda : wd):
app = DummyApp(config_dir=config_dir)
app.initialize([])
assert app.m == 1, "Loaded config from config dir"
assert app.n == 2, "Loaded config from CWD"
shutil.rmtree(config_dir)
shutil.rmtree(wd)
def test_load_bad_config():
config_dir = mkdtemp()
wd = mkdtemp()
with open(pjoin(config_dir, 'dummy_app_config.py'), 'w') as f:
f.write('c.DummyApp.m = "a\n') # Syntax error
with patch.object(py3compat, 'getcwd', lambda : wd):
with pytest.raises(SyntaxError):
app = DummyApp(config_dir=config_dir)
app.raise_config_file_errors=True
app.initialize([])
shutil.rmtree(config_dir)
shutil.rmtree(wd)
def test_runtime_dir_changed():
app = DummyApp()
td = mkdtemp()
shutil.rmtree(td)
app.runtime_dir = td
assert os.path.isdir(td)
shutil.rmtree(td)