test_dialog.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. from selenium.webdriver.common.keys import Keys
  2. from nicegui import ui
  3. from nicegui.testing import Screen
  4. def test_open_close_dialog(screen: Screen):
  5. with ui.dialog() as d, ui.card():
  6. ui.label('Content')
  7. ui.button('Close', on_click=d.close)
  8. ui.button('Open', on_click=d.open)
  9. screen.open('/')
  10. screen.should_not_contain('Content')
  11. screen.click('Open')
  12. screen.wait(0.5)
  13. screen.should_contain('Content')
  14. screen.click('Close')
  15. screen.wait(0.5)
  16. screen.should_not_contain('Content')
  17. def test_await_dialog(screen: Screen):
  18. with ui.dialog() as dialog, ui.card():
  19. ui.button('Yes', on_click=lambda: dialog.submit('Yes'))
  20. ui.button('No', on_click=lambda: dialog.submit('No'))
  21. async def show() -> None:
  22. ui.notify(f'Result: {await dialog}')
  23. ui.button('Open', on_click=show)
  24. screen.open('/')
  25. screen.click('Open')
  26. screen.click('Yes')
  27. screen.should_contain('Result: Yes')
  28. screen.click('Open')
  29. screen.click('No')
  30. screen.should_contain('Result: No')
  31. screen.click('Open')
  32. screen.type(Keys.ESCAPE)
  33. screen.should_contain('Result: None')