lightning/tests/tests_app/frontend/test_utils.py

43 lines
1.6 KiB
Python
Raw Normal View History

"""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"