48 lines
1.7 KiB
Python
48 lines
1.7 KiB
Python
|
INITIAL_CELLS = ['1', '2', '3', '4', '5', '6']
|
||
|
def test_move_multiselection(prefill_notebook):
|
||
|
notebook = prefill_notebook(INITIAL_CELLS)
|
||
|
def assert_oder(pre_message, expected_state):
|
||
|
for i in range(len(expected_state)):
|
||
|
assert expected_state[i] == notebook.get_cell_contents(i), f"{pre_message}: Verify that cell {i} has for content: {expected_state[i]} found: {notebook.get_cell_contents(i)}"
|
||
|
|
||
|
# Select 3 first cells
|
||
|
notebook.select_cell_range(0, 2)
|
||
|
notebook.browser.execute_script(
|
||
|
"Jupyter.notebook.move_selection_up();"
|
||
|
)
|
||
|
# Should not move up at top
|
||
|
assert_oder('move up at top', ['1', '2', '3', '4', '5','6'])
|
||
|
|
||
|
# We do not need to reselect, move/up down should keep the selection.
|
||
|
notebook.browser.execute_script(
|
||
|
"Jupyter.notebook.move_selection_down();"
|
||
|
)
|
||
|
notebook.browser.execute_script(
|
||
|
"Jupyter.notebook.move_selection_down();"
|
||
|
)
|
||
|
notebook.browser.execute_script(
|
||
|
"Jupyter.notebook.move_selection_down();"
|
||
|
)
|
||
|
|
||
|
# 3 times down should move the 3 selected cells to the bottom
|
||
|
assert_oder("move down to bottom", ['4', '5', '6', '1', '2', '3'])
|
||
|
notebook.browser.execute_script(
|
||
|
"Jupyter.notebook.move_selection_down();"
|
||
|
)
|
||
|
|
||
|
# They can't go any futher
|
||
|
assert_oder("move down to bottom", ['4', '5', '6', '1', '2', '3'])
|
||
|
|
||
|
notebook.browser.execute_script(
|
||
|
"Jupyter.notebook.move_selection_up();"
|
||
|
)
|
||
|
notebook.browser.execute_script(
|
||
|
"Jupyter.notebook.move_selection_up();"
|
||
|
)
|
||
|
notebook.browser.execute_script(
|
||
|
"Jupyter.notebook.move_selection_up();"
|
||
|
)
|
||
|
|
||
|
# Bring them back on top
|
||
|
assert_oder('move up at top', ['1', '2', '3', '4', '5','6'])
|