123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- # Copyright 2021-2024 Avaiga Private Limited
- #
- # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
- # the License. You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
- # an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- # specific language governing permissions and limitations under the License.
- from taipy.gui import Gui, Markdown
- def test_variable_binding(helpers):
- """
- Tests the binding of a few variables and a function
- """
- def another_function(gui):
- pass
- x = 10
- y = 20
- z = "button label"
- gui = Gui()
- gui.add_page("test", Markdown("<|{x}|> | <|{y}|> | <|{z}|button|on_action=another_function|>"))
- gui.run(run_server=False, single_client=True)
- client = gui._server.test_client()
- jsx = client.get("/taipy-jsx/test").json["jsx"]
- for expected in ["<Button", 'defaultLabel="button label"', "label={tpec_TpExPr_z_TPMDL_0}"]:
- assert expected in jsx
- assert gui._bindings().x == x
- assert gui._bindings().y == y
- assert gui._bindings().z == z
- with gui.get_flask_app().app_context():
- assert callable(gui._get_user_function("another_function"))
- helpers.test_cleanup()
- def test_properties_binding(helpers):
- gui = Gui()
- modifier = "nice " # noqa: F841
- button_properties = {"label": "A {modifier}button"} # noqa: F841
- gui.add_page("test", Markdown("<|button|properties=button_properties|>"))
- gui.run(run_server=False)
- client = gui._server.test_client()
- jsx = client.get("/taipy-jsx/test").json["jsx"]
- for expected in ["<Button", 'defaultLabel="A nice button"']:
- assert expected in jsx
- helpers.test_cleanup()
- def test_dict_binding(helpers):
- """
- Tests the binding of a dictionary property
- """
- d = {"k": "test"} # noqa: F841
- gui = Gui("<|{d.k}|>")
- gui.run(run_server=False)
- client = gui._server.test_client()
- jsx = client.get("/taipy-jsx/TaiPy_root_page").json["jsx"]
- for expected in ["<Field", 'defaultValue="test"']:
- assert expected in jsx
- helpers.test_cleanup()
|