test_page.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. from reflex import text
  2. from reflex.config import get_config
  3. from reflex.page import DECORATED_PAGES, get_decorated_pages, page
  4. def test_page_decorator():
  5. def foo_():
  6. return text("foo")
  7. assert len(DECORATED_PAGES) == 0
  8. decorated_foo_ = page()(foo_)
  9. assert decorated_foo_ == foo_
  10. assert len(DECORATED_PAGES) == 1
  11. page_data = DECORATED_PAGES.get(get_config().app_name, [])[0][1]
  12. assert page_data == {}
  13. DECORATED_PAGES.clear()
  14. def test_page_decorator_with_kwargs():
  15. def foo_():
  16. return text("foo")
  17. def load_foo():
  18. return []
  19. DECORATED_PAGES.clear()
  20. assert len(DECORATED_PAGES) == 0
  21. decorated_foo_ = page(
  22. route="foo",
  23. title="Foo",
  24. image="foo.png",
  25. description="Foo description",
  26. meta=["foo-meta"],
  27. script_tags=["foo-script"],
  28. on_load=load_foo,
  29. )(foo_)
  30. assert decorated_foo_ == foo_
  31. assert len(DECORATED_PAGES) == 1
  32. page_data = DECORATED_PAGES.get(get_config().app_name, [])[0][1]
  33. assert page_data == {
  34. "description": "Foo description",
  35. "image": "foo.png",
  36. "meta": ["foo-meta"],
  37. "on_load": load_foo,
  38. "route": "foo",
  39. "script_tags": ["foo-script"],
  40. "title": "Foo",
  41. }
  42. DECORATED_PAGES.clear()
  43. def test_get_decorated_pages():
  44. assert get_decorated_pages() == []
  45. def foo_():
  46. return text("foo")
  47. page()(foo_)
  48. assert get_decorated_pages() == []
  49. assert get_decorated_pages(omit_implicit_routes=False) == [{}]
  50. page(route="foo2")(foo_)
  51. assert get_decorated_pages() == [{"route": "foo2"}]
  52. assert get_decorated_pages(omit_implicit_routes=False) == [{}, {"route": "foo2"}]
  53. page(route="foo3", title="Foo3")(foo_)
  54. assert get_decorated_pages() == [
  55. {"route": "foo2"},
  56. {"route": "foo3", "title": "Foo3"},
  57. ]
  58. assert get_decorated_pages(omit_implicit_routes=False) == [
  59. {},
  60. {"route": "foo2"},
  61. {"route": "foo3", "title": "Foo3"},
  62. ]