def test_html_pane(document, comm): pane = HTML("<h1>Test</h1>") # Create pane row = pane._get_root(document, comm=comm) assert isinstance(row, BkRow) assert len(row.children) == 1 model = row.children[0] assert row.ref['id'] in pane._callbacks assert pane._models[row.ref['id']] is model div = get_div(model) assert div.text == "<h1>Test</h1>" # Replace Pane.object pane.object = "<h2>Test</h2>" model = row.children[0] assert div is get_div(model) assert row.ref['id'] in pane._callbacks assert pane._models[row.ref['id']] is model assert div.text == "<h2>Test</h2>" # Cleanup pane._cleanup(row) assert pane._callbacks == {} assert pane._models == {}
def test_console_output_disable_stdout(document, comm, get_display_handle): pane = HTML() with set_env_var('PANEL_CONSOLE_OUTPUT', 'disable'): model = pane.get_root(document, comm) handle = get_display_handle(model) pane._on_stdout(model.ref['id'], ['print output']) assert handle == {} pane._cleanup(model) assert model.ref['id'] not in state._handles
def test_console_output_accumulate_stdout(document, comm, get_display_handle): pane = HTML() model = pane.get_root(document, comm) handle = get_display_handle(model) pane._on_stdout(model.ref['id'], ['print output']) assert handle == {'text/html': 'print output</br>', 'raw': True} pane._on_stdout(model.ref['id'], ['new output']) assert handle == {'text/html': 'print output</br>\nnew output</br>', 'raw': True} pane._cleanup(model) assert model.ref['id'] not in state._handles
def test_console_output_replace_stdout(document, comm, get_display_handle): pane = HTML() with set_env_var('PANEL_CONSOLE_OUTPUT', 'replace'): model = pane.get_root(document, comm) handle = get_display_handle(model) pane._on_stdout(model.ref['id'], ['print output']) assert handle == {'text/html': 'print output</br>', 'raw': True} pane._on_stdout(model.ref['id'], ['new output']) assert handle == {'text/html': 'new output</br>', 'raw': True} pane._cleanup(model) assert model.ref['id'] not in state._handles
def test_console_output_disable_error(document, comm, get_display_handle): pane = HTML() with set_env_var('PANEL_CONSOLE_OUTPUT', 'disable'): model = pane.get_root(document, comm) handle = get_display_handle(model) try: 1 / 0 except Exception as e: pane._on_error(model.ref['id'], e) assert handle == {} pane._cleanup(model) assert model.ref['id'] not in state._handles
def test_html_pane_width_height_stretch(document, comm): pane = HTML("<h1>Test</h1>", sizing_mode='stretch_width') # Create pane model = pane.get_root(document, comm=comm) assert model.style == {'width': '100%'} pane.sizing_mode = 'stretch_both' assert model.style == {'width': '100%', 'height': '100%'} pane.sizing_mode = 'stretch_height' assert model.style == {'height': '100%'} pane._cleanup(model)
def test_html_pane(document, comm): pane = HTML("<h1>Test</h1>") # Create pane model = pane.get_root(document, comm=comm) assert pane._models[model.ref['id']][0] is model assert model.text == "<h1>Test</h1>" # Replace Pane.object pane.object = "<h2>Test</h2>" assert pane._models[model.ref['id']][0] is model assert model.text == "<h2>Test</h2>" # Cleanup pane._cleanup(model) assert pane._models == {}
def test_console_output_accumulate_error(document, comm, get_display_handle): pane = HTML() model = pane.get_root(document, comm) handle = get_display_handle(model) try: 1 / 0 except Exception as e: pane._on_error(model.ref['id'], e) assert 'text/html' in handle assert 'ZeroDivisionError' in handle['text/html'] try: 1 + '2' except Exception as e: pane._on_error(model.ref['id'], e) assert 'text/html' in handle assert 'ZeroDivisionError' in handle['text/html'] assert 'TypeError' in handle['text/html'] pane._cleanup(model) assert model.ref['id'] not in state._handles
def test_console_output_replace_error(document, comm, get_display_handle): pane = HTML() with set_env_var('PANEL_CONSOLE_OUTPUT', 'replace'): model = pane.get_root(document, comm) handle = get_display_handle(model) try: 1 / 0 except Exception as e: pane._on_error(model.ref['id'], e) assert 'text/html' in handle assert 'ZeroDivisionError' in handle['text/html'] try: 1 + '2' except Exception as e: pane._on_error(model.ref['id'], e) assert 'text/html' in handle assert 'ZeroDivisionError' not in handle['text/html'] assert 'TypeError' in handle['text/html'] pane._cleanup(model) assert model.ref['id'] not in state._handles