| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- 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
|