1
0

test_dialog.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. from typing import List
  2. from selenium.webdriver.common.keys import Keys
  3. from nicegui import ui
  4. from nicegui.testing import Screen
  5. def test_open_close_dialog(screen: Screen):
  6. with ui.dialog() as d, ui.card():
  7. ui.label('Content')
  8. ui.button('Close', on_click=d.close)
  9. ui.button('Open', on_click=d.open)
  10. screen.open('/')
  11. screen.should_not_contain('Content')
  12. screen.click('Open')
  13. screen.wait(0.5)
  14. screen.should_contain('Content')
  15. screen.click('Close')
  16. screen.wait(0.5)
  17. screen.should_not_contain('Content')
  18. def test_await_dialog(screen: Screen):
  19. with ui.dialog() as dialog, ui.card():
  20. ui.label('Are you sure?')
  21. with ui.row():
  22. ui.button('Yes', on_click=lambda: dialog.submit('Yes'))
  23. ui.button('No', on_click=lambda: dialog.submit('No'))
  24. async def show() -> None:
  25. results.append(await dialog)
  26. results: List[str] = []
  27. ui.button('Open', on_click=show)
  28. screen.open('/')
  29. screen.click('Open')
  30. screen.click('Yes')
  31. screen.click('Open')
  32. screen.click('No')
  33. screen.click('Open')
  34. screen.type(Keys.ESCAPE)
  35. screen.wait(0.5)
  36. assert results == ['Yes', 'No', None]