Skip to content

Commit

Permalink
Merge pull request #3508 from Sheshtawy/convert-dualmode-insertcell-t…
Browse files Browse the repository at this point in the history
…o-selenium

Convert dualmode_insertcell.js
  • Loading branch information
takluyver authored Apr 28, 2018
2 parents 6d258b5 + b25a142 commit 2aca6f9
Show file tree
Hide file tree
Showing 4 changed files with 64 additions and 84 deletions.
82 changes: 0 additions & 82 deletions notebook/tests/notebook/dualmode_cellinsert.js

This file was deleted.

2 changes: 0 additions & 2 deletions notebook/tests/selenium/test_deletecell.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import os
import pytest

def cell_is_deletable(nb, index):
JS = 'return Jupyter.notebook.get_cell({}).is_deletable();'.format(index)
Expand Down
57 changes: 57 additions & 0 deletions notebook/tests/selenium/test_dualmode_insertcell.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
from selenium.webdriver.common.keys import Keys
from .utils import shift

def test_insert_cell(notebook):
a = "print('a')"
b = "print('b')"
c = "print('c')"

notebook.edit_cell(index=0, content=a)
notebook.append(b, c)
notebook.to_command_mode()

assert notebook.get_cells_contents() == [a, b, c]

notebook.to_command_mode()
notebook.focus_cell(2)
notebook.convert_cell_type(2, "markdown")

# insert code cell above
notebook.current_cell.send_keys("a")
assert notebook.get_cell_contents(2) == ""
assert notebook.get_cell_type(2) == "code"
assert len(notebook.cells) == 4

# insert code cell below
notebook.current_cell.send_keys("b")
assert notebook.get_cell_contents(2) == ""
assert notebook.get_cell_contents(3) == ""
assert notebook.get_cell_type(3) == "code"
assert len(notebook.cells) == 5

notebook.edit_cell(index=1, content="cell1")
notebook.focus_cell(1)
notebook.current_cell.send_keys("a")
assert notebook.get_cell_contents(1) == ""
assert notebook.get_cell_contents(2) == "cell1"

notebook.edit_cell(index=1, content='cell1')
notebook.edit_cell(index=2, content='cell2')
notebook.edit_cell(index=3, content='cell3')
notebook.focus_cell(2)
notebook.current_cell.send_keys("b")
assert notebook.get_cell_contents(1) == "cell1"
assert notebook.get_cell_contents(2) == "cell2"
assert notebook.get_cell_contents(3) == ""
assert notebook.get_cell_contents(4) == "cell3"

# insert above multiple selected cells
notebook.focus_cell(1)
shift(notebook.browser, Keys.DOWN)
notebook.current_cell.send_keys('a')

# insert below multiple selected cells
notebook.focus_cell(2)
shift(notebook.browser, Keys.DOWN)
notebook.current_cell.send_keys('b')
assert notebook.get_cells_contents()[1:5] == ["", "cell1", "cell2", ""]
7 changes: 7 additions & 0 deletions notebook/tests/selenium/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,10 +131,17 @@ def get_cells_contents(self):
JS = 'return Jupyter.notebook.get_cells().map(function(c) {return c.get_text();})'
return self.browser.execute_script(JS)

def get_cell_contents(self, index=0, selector='div .CodeMirror-code'):
return self.cells[index].find_element_by_css_selector(selector).text

def set_cell_metadata(self, index, key, value):
JS = 'Jupyter.notebook.get_cell({}).metadata.{} = {}'.format(index, key, value)
return self.browser.execute_script(JS)

def get_cell_type(self, index=0):
JS = 'return Jupyter.notebook.get_cell({}).cell_type'.format(index)
return self.browser.execute_script(JS)

def set_cell_input_prompt(self, index, prmpt_val):
JS = 'Jupyter.notebook.get_cell({}).set_input_prompt({})'.format(index, prmpt_val)
self.browser.execute_script(JS)
Expand Down

0 comments on commit 2aca6f9

Please sign in to comment.