45 lines
2 KiB
Python
45 lines
2 KiB
Python
|
|
||
|
INITIAL_CELLS = ['print("a")', 'print("b")', 'print("c")']
|
||
|
def test_multiselect_toggle(prefill_notebook):
|
||
|
notebook = prefill_notebook(INITIAL_CELLS)
|
||
|
def extend_selection_by(delta):
|
||
|
notebook.browser.execute_script(
|
||
|
"Jupyter.notebook.extend_selection_by(arguments[0]);", delta)
|
||
|
|
||
|
def n_selected_cells():
|
||
|
return notebook.browser.execute_script(
|
||
|
"return Jupyter.notebook.get_selected_cells().length;")
|
||
|
|
||
|
def select_cells():
|
||
|
notebook.focus_cell(0)
|
||
|
extend_selection_by(2)
|
||
|
|
||
|
# Test that cells, which start off not collapsed, are collapsed after
|
||
|
# calling the multiselected cell toggle.
|
||
|
select_cells()
|
||
|
assert n_selected_cells() == 3
|
||
|
notebook.browser.execute_script("Jupyter.notebook.execute_selected_cells();")
|
||
|
select_cells()
|
||
|
notebook.browser.execute_script("Jupyter.notebook.toggle_cells_outputs();")
|
||
|
cell_output_states = notebook.browser.execute_script(
|
||
|
"return Jupyter.notebook.get_cells().map(c => c.collapsed)")
|
||
|
assert cell_output_states == [False] * 3, "ensure that all cells are not collapsed"
|
||
|
|
||
|
# Test that cells, which start off not scrolled are scrolled after
|
||
|
# calling the multiselected scroll toggle.
|
||
|
select_cells()
|
||
|
assert n_selected_cells() == 3
|
||
|
notebook.browser.execute_script("Jupyter.notebook.toggle_cells_outputs_scroll();")
|
||
|
cell_scrolled_states = notebook.browser.execute_script(
|
||
|
"return Jupyter.notebook.get_cells().map(c => c.output_area.scroll_state)")
|
||
|
assert all(cell_scrolled_states), "ensure that all have scrolling enabled"
|
||
|
|
||
|
# Test that cells, which start off not cleared are cleared after
|
||
|
# calling the multiselected scroll toggle.
|
||
|
select_cells()
|
||
|
assert n_selected_cells() == 3
|
||
|
notebook.browser.execute_script("Jupyter.notebook.clear_cells_outputs();")
|
||
|
cell_outputs_cleared = notebook.browser.execute_script(
|
||
|
"return Jupyter.notebook.get_cells().map(c => c.output_area.element.html())")
|
||
|
assert cell_outputs_cleared == [""] * 3, "ensure that all cells are cleared"
|