75 lines
2.6 KiB
Python
75 lines
2.6 KiB
Python
|
''' Test keyboard invoked execution '''
|
||
|
|
||
|
from selenium.webdriver.common.keys import Keys
|
||
|
|
||
|
from .utils import shift, cmdtrl, alt, validate_dualmode_state
|
||
|
|
||
|
INITIAL_CELLS = ['', 'print("a")', 'print("b")', 'print("c")']
|
||
|
|
||
|
def test_dualmode_execute(prefill_notebook):
|
||
|
notebook = prefill_notebook(INITIAL_CELLS)
|
||
|
for i in range(1, 4):
|
||
|
notebook.execute_cell(i)
|
||
|
|
||
|
#shift-enter
|
||
|
#last cell in notebook
|
||
|
base_index = 3
|
||
|
notebook.focus_cell(base_index)
|
||
|
shift(notebook.browser, Keys.ENTER) #creates one cell
|
||
|
validate_dualmode_state(notebook, 'edit', base_index + 1)
|
||
|
|
||
|
#Not last cell in notebook & starts in edit mode
|
||
|
notebook.focus_cell(base_index)
|
||
|
notebook.body.send_keys(Keys.ENTER) #Enter edit mode
|
||
|
validate_dualmode_state(notebook, 'edit', base_index)
|
||
|
shift(notebook.browser, Keys.ENTER) #creates one cell
|
||
|
validate_dualmode_state(notebook, 'command', base_index + 1)
|
||
|
|
||
|
#Starts in command mode
|
||
|
notebook.body.send_keys('k')
|
||
|
validate_dualmode_state(notebook, 'command', base_index)
|
||
|
shift(notebook.browser, Keys.ENTER) #creates one cell
|
||
|
validate_dualmode_state(notebook, 'command', base_index + 1)
|
||
|
|
||
|
|
||
|
#Ctrl-enter
|
||
|
#Last cell in notebook
|
||
|
base_index += 1
|
||
|
cmdtrl(notebook.browser, Keys.ENTER)
|
||
|
validate_dualmode_state(notebook, 'command', base_index)
|
||
|
|
||
|
#Not last cell in notebook & stats in edit mode
|
||
|
notebook.focus_cell(base_index - 1)
|
||
|
notebook.body.send_keys(Keys.ENTER) #Enter edit mode
|
||
|
validate_dualmode_state(notebook, 'edit', base_index - 1)
|
||
|
cmdtrl(notebook.browser, Keys.ENTER)
|
||
|
|
||
|
#Starts in command mode
|
||
|
notebook.body.send_keys('j')
|
||
|
validate_dualmode_state(notebook, 'command', base_index)
|
||
|
cmdtrl(notebook.browser, Keys.ENTER)
|
||
|
validate_dualmode_state(notebook, 'command', base_index)
|
||
|
|
||
|
|
||
|
#Alt-enter
|
||
|
#Last cell in notebook
|
||
|
alt(notebook.browser, Keys.ENTER)
|
||
|
validate_dualmode_state(notebook, 'edit', base_index + 1)
|
||
|
#Not last cell in notebook &starts in edit mode
|
||
|
notebook.focus_cell(base_index)
|
||
|
notebook.body.send_keys(Keys.ENTER) #Enter edit mode
|
||
|
validate_dualmode_state(notebook, 'edit', base_index)
|
||
|
alt(notebook.browser, Keys.ENTER)
|
||
|
validate_dualmode_state(notebook, 'edit', base_index + 1)
|
||
|
#starts in command mode
|
||
|
notebook.body.send_keys(Keys.ESCAPE, 'k')
|
||
|
validate_dualmode_state(notebook, 'command', base_index)
|
||
|
alt(notebook.browser, Keys.ENTER)
|
||
|
validate_dualmode_state(notebook, 'edit', base_index + 1)
|
||
|
|
||
|
|
||
|
#Notebook will now have 8 cells, the index of the last cell will be 7
|
||
|
assert len(notebook) == 8 #Cells where added
|
||
|
notebook.focus_cell(7)
|
||
|
validate_dualmode_state(notebook, 'command', 7)
|