re add removed method with better behaviour and tests (#3986)
This commit is contained in:
parent
2c4310d9ff
commit
4e4d36a867
@ -63,3 +63,22 @@ def page(
|
||||
return render_fn
|
||||
|
||||
return decorator
|
||||
|
||||
|
||||
def get_decorated_pages(omit_implicit_routes=True) -> list[dict[str, Any]]:
|
||||
"""Get the decorated pages.
|
||||
|
||||
Args:
|
||||
omit_implicit_routes: Whether to omit pages where the route will be implicitely guessed later.
|
||||
|
||||
Returns:
|
||||
The decorated pages.
|
||||
"""
|
||||
return sorted(
|
||||
[
|
||||
page_data
|
||||
for _, page_data in DECORATED_PAGES[get_config().app_name]
|
||||
if not omit_implicit_routes or "route" in page_data
|
||||
],
|
||||
key=lambda x: x.get("route", ""),
|
||||
)
|
||||
|
@ -1,6 +1,6 @@
|
||||
from reflex import text
|
||||
from reflex.config import get_config
|
||||
from reflex.page import DECORATED_PAGES, page
|
||||
from reflex.page import DECORATED_PAGES, get_decorated_pages, page
|
||||
|
||||
|
||||
def test_page_decorator():
|
||||
@ -48,3 +48,32 @@ def test_page_decorator_with_kwargs():
|
||||
}
|
||||
|
||||
DECORATED_PAGES.clear()
|
||||
|
||||
|
||||
def test_get_decorated_pages():
|
||||
assert get_decorated_pages() == []
|
||||
|
||||
def foo_():
|
||||
return text("foo")
|
||||
|
||||
page()(foo_)
|
||||
|
||||
assert get_decorated_pages() == []
|
||||
assert get_decorated_pages(omit_implicit_routes=False) == [{}]
|
||||
|
||||
page(route="foo2")(foo_)
|
||||
|
||||
assert get_decorated_pages() == [{"route": "foo2"}]
|
||||
assert get_decorated_pages(omit_implicit_routes=False) == [{}, {"route": "foo2"}]
|
||||
|
||||
page(route="foo3", title="Foo3")(foo_)
|
||||
|
||||
assert get_decorated_pages() == [
|
||||
{"route": "foo2"},
|
||||
{"route": "foo3", "title": "Foo3"},
|
||||
]
|
||||
assert get_decorated_pages(omit_implicit_routes=False) == [
|
||||
{},
|
||||
{"route": "foo2"},
|
||||
{"route": "foo3", "title": "Foo3"},
|
||||
]
|
||||
|
Loading…
Reference in New Issue
Block a user