File size: 3,850 Bytes
d1ceb73 |
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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 |
import io
import logging
import pytest
from traitlets import default
from .mockextension import MockExtensionApp
from notebook_shim import shim
@pytest.fixture
def read_app_logs(capsys):
"""Fixture that returns a callable to read
the current output from the application's logs
that was printed to sys.stderr.
"""
def _inner():
captured = capsys.readouterr()
return captured.err
return _inner
@pytest.fixture
def jp_server_config(capsys):
return {
"ServerApp": {
"jpserver_extensions": {
"notebook_shim": True,
"notebook_shim.tests.mockextension": True
}
}
}
@pytest.fixture
def extensionapp(jp_serverapp):
return jp_serverapp.extension_manager.extension_points["mockextension"].app
def list_test_params(param_input):
""""""
params = []
for test in param_input:
name, value = test[0], test[1]
option = (
'--MockExtensionApp.'
'{name}={value}'
.format(name=name, value=value)
)
params.append([[option], name, value])
return params
@pytest.mark.parametrize(
'jp_argv,trait_name,trait_value',
list_test_params([
('enable_mathjax', False)
])
)
def test_EXTAPP_AND_NBAPP_SHIM_MSG(
read_app_logs,
extensionapp,
jp_argv,
trait_name,
trait_value
):
log = read_app_logs()
# Verify a shim warning appeared.
log_msg = shim.EXTAPP_AND_NBAPP_SHIM_MSG(trait_name, 'MockExtensionApp')
assert log_msg in log
# Verify the trait was updated.
assert getattr(extensionapp, trait_name) == trait_value
@pytest.mark.parametrize(
'jp_argv,trait_name,trait_value',
list_test_params([
('allow_origin', ''),
('allow_origin_pat', ''),
])
)
def test_EXTAPP_AND_SVAPP_SHIM_MSG(
read_app_logs,
extensionapp,
jp_argv,
trait_name,
trait_value
):
log = read_app_logs()
# Verify a shim warning appeared.
log_msg = shim.EXTAPP_AND_SVAPP_SHIM_MSG(trait_name, 'MockExtensionApp')
assert log_msg in log
# Verify the trait was updated.
assert getattr(extensionapp, trait_name) == trait_value
@pytest.mark.parametrize(
'jp_argv,trait_name,trait_value',
list_test_params([
('jinja_environment_options', {}),
('jinja_template_vars', {}),
('extra_template_paths', []),
('quit_button', True),
])
)
def test_NOT_EXTAPP_NBAPP_AND_SVAPP_SHIM_MSG(
read_app_logs,
extensionapp,
jp_argv,
trait_name,
trait_value
):
log = read_app_logs()
# Verify a shim warning appeared.
log_msg = shim.NOT_EXTAPP_NBAPP_AND_SVAPP_SHIM_MSG(trait_name, 'MockExtensionApp')
assert log_msg in log
# Verify the trait was updated.
assert getattr(extensionapp.serverapp, trait_name) == trait_value
@pytest.mark.parametrize(
'jp_argv,trait_name,trait_value',
list_test_params([
('allow_credentials', False),
])
)
def test_EXTAPP_TO_SVAPP_SHIM_MSG(
read_app_logs,
extensionapp,
jp_argv,
trait_name,
trait_value
):
log = read_app_logs()
# Verify a shim warning appeared.
log_msg = shim.EXTAPP_TO_SVAPP_SHIM_MSG(trait_name, 'MockExtensionApp')
assert log_msg in log
# Verify the trait was updated.
assert getattr(extensionapp.serverapp, trait_name) == trait_value
@pytest.mark.parametrize(
'jp_argv,trait_name,trait_value',
list_test_params([
('mathjax_config', 'TEST'),
('mathjax_url', 'TEST')
])
)
def test_EXTAPP_TO_NBAPP_SHIM_MSG(
read_app_logs,
extensionapp,
jp_argv,
trait_name,
trait_value
):
log = read_app_logs()
# Verify a shim warning appeared.
log_msg = shim.EXTAPP_TO_NBAPP_SHIM_MSG(trait_name, 'MockExtensionApp')
assert log_msg in log
|