test_tree.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. from nicegui import ui
  2. from .screen import Screen
  3. def test_tree(screen: Screen):
  4. ui.tree([
  5. {'id': 'numbers', 'children': [{'id': '1'}, {'id': '2'}]},
  6. {'id': 'letters', 'children': [{'id': 'A'}, {'id': 'B'}]},
  7. ], label_key='id')
  8. screen.open('/')
  9. screen.should_contain('numbers')
  10. screen.should_contain('letters')
  11. screen.should_not_contain('1')
  12. screen.should_not_contain('2')
  13. screen.should_not_contain('A')
  14. screen.should_not_contain('B')
  15. screen.find_by_class('q-icon').click()
  16. screen.should_contain('1')
  17. screen.should_contain('2')
  18. def test_expand_and_collapse_nodes(screen: Screen):
  19. tree = ui.tree([
  20. {'id': 'numbers', 'children': [{'id': '1'}, {'id': '2'}]},
  21. {'id': 'letters', 'children': [{'id': 'A'}, {'id': 'B'}]},
  22. ], label_key='id')
  23. ui.button('Expand all', on_click=tree.expand)
  24. ui.button('Collapse all', on_click=tree.collapse)
  25. ui.button('Expand numbers', on_click=lambda: tree.expand(['numbers']))
  26. ui.button('Collapse numbers', on_click=lambda: tree.collapse(['numbers']))
  27. screen.open('/')
  28. screen.click('Expand all')
  29. screen.wait(0.5)
  30. screen.should_contain('1')
  31. screen.should_contain('2')
  32. screen.should_contain('A')
  33. screen.should_contain('B')
  34. screen.click('Collapse all')
  35. screen.wait(0.5)
  36. screen.should_not_contain('1')
  37. screen.should_not_contain('2')
  38. screen.should_not_contain('A')
  39. screen.should_not_contain('B')
  40. screen.click('Expand numbers')
  41. screen.wait(0.5)
  42. screen.should_contain('1')
  43. screen.should_contain('2')
  44. screen.should_not_contain('A')
  45. screen.should_not_contain('B')
  46. screen.click('Expand all')
  47. screen.click('Collapse numbers')
  48. screen.wait(0.5)
  49. screen.should_not_contain('1')
  50. screen.should_not_contain('2')
  51. screen.should_contain('A')
  52. screen.should_contain('B')