43 lines
1.6 KiB
Python
43 lines
1.6 KiB
Python
"""We have some utility functions that can be used across frontends."""
|
|
|
|
from lightning_app.frontend.utils import _get_flow_state, _get_frontend_environment
|
|
from lightning_app.utilities.state import AppState
|
|
|
|
|
|
def test_get_flow_state(flow_state_state: dict, flow):
|
|
"""We have a method to get an AppState scoped to the Flow state."""
|
|
# When
|
|
flow_state = _get_flow_state(flow)
|
|
# Then
|
|
assert isinstance(flow_state, AppState)
|
|
assert flow_state._state == flow_state_state # pylint: disable=protected-access
|
|
|
|
|
|
def some_fn(_):
|
|
"""Be lazy!"""
|
|
|
|
|
|
def test_get_frontend_environment_fn():
|
|
"""We have a utility function to get the frontend render_fn environment."""
|
|
# When
|
|
env = _get_frontend_environment(flow="root.lit_frontend", render_fn_or_file=some_fn, host="myhost", port=1234)
|
|
# Then
|
|
assert env["LIGHTNING_FLOW_NAME"] == "root.lit_frontend"
|
|
assert env["LIGHTNING_RENDER_ADDRESS"] == "myhost"
|
|
assert env["LIGHTNING_RENDER_FUNCTION"] == "some_fn"
|
|
assert env["LIGHTNING_RENDER_MODULE_FILE"] == __file__
|
|
assert env["LIGHTNING_RENDER_PORT"] == "1234"
|
|
|
|
|
|
def test_get_frontend_environment_file():
|
|
"""We have a utility function to get the frontend render_fn environment."""
|
|
# When
|
|
env = _get_frontend_environment(
|
|
flow="root.lit_frontend", render_fn_or_file="app_panel.py", host="myhost", port=1234
|
|
)
|
|
# Then
|
|
assert env["LIGHTNING_FLOW_NAME"] == "root.lit_frontend"
|
|
assert env["LIGHTNING_RENDER_ADDRESS"] == "myhost"
|
|
assert env["LIGHTNING_RENDER_FILE"] == "app_panel.py"
|
|
assert env["LIGHTNING_RENDER_PORT"] == "1234"
|