60 lines
2.3 KiB
Python
60 lines
2.3 KiB
Python
from selenium.common.exceptions import TimeoutException
|
|
from selenium.webdriver.common.by import By
|
|
from selenium.webdriver.support import expected_conditions as EC
|
|
from selenium.webdriver.support.ui import WebDriverWait
|
|
from notebook.tests.selenium.utils import wait_for_selector
|
|
|
|
restart_selectors = [
|
|
'#restart_kernel', '#restart_clear_output', '#restart_run_all'
|
|
]
|
|
notify_interaction = '#notification_kernel > span'
|
|
|
|
shutdown_selector = '#shutdown_kernel'
|
|
confirm_selector = '.btn-danger'
|
|
cancel_selector = ".modal-footer button:first-of-type"
|
|
|
|
|
|
def test_cancel_restart_or_shutdown(notebook):
|
|
"""Click each of the restart options, then cancel the confirmation dialog"""
|
|
browser = notebook.browser
|
|
kernel_menu = browser.find_element_by_id('kernellink')
|
|
|
|
for menu_item in restart_selectors + [shutdown_selector]:
|
|
kernel_menu.click()
|
|
wait_for_selector(browser, menu_item, visible=True, single=True).click()
|
|
wait_for_selector(browser, cancel_selector, visible=True, single=True).click()
|
|
WebDriverWait(browser, 3).until(
|
|
EC.invisibility_of_element((By.CSS_SELECTOR, '.modal-backdrop'))
|
|
)
|
|
assert notebook.is_kernel_running()
|
|
|
|
|
|
def test_menu_items(notebook):
|
|
browser = notebook.browser
|
|
kernel_menu = browser.find_element_by_id('kernellink')
|
|
|
|
for menu_item in restart_selectors:
|
|
# Shutdown
|
|
kernel_menu.click()
|
|
wait_for_selector(browser, shutdown_selector, visible=True, single=True).click()
|
|
|
|
# Confirm shutdown
|
|
wait_for_selector(browser, confirm_selector, visible=True, single=True).click()
|
|
|
|
WebDriverWait(browser, 3).until(
|
|
lambda b: not notebook.is_kernel_running(),
|
|
message="Kernel did not shut down as expected"
|
|
)
|
|
|
|
# Restart
|
|
# Selenium can't click the menu while a modal dialog is fading out
|
|
WebDriverWait(browser, 3).until(
|
|
EC.invisibility_of_element((By.CSS_SELECTOR, '.modal-backdrop'))
|
|
)
|
|
kernel_menu.click()
|
|
|
|
wait_for_selector(browser, menu_item, visible=True, single=True).click()
|
|
WebDriverWait(browser, 10).until(
|
|
lambda b: notebook.is_kernel_running(),
|
|
message="Restart (%r) after shutdown did not start kernel" % menu_item
|
|
)
|