test_toggle.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. # Copyright 2021-2024 Avaiga Private Limited
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
  4. # the License. You may obtain a copy of the License at
  5. #
  6. # http://www.apache.org/licenses/LICENSE-2.0
  7. #
  8. # Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
  9. # an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
  10. # specific language governing permissions and limitations under the License.
  11. from taipy.gui import Gui
  12. def test_toggle_md(gui: Gui, helpers):
  13. md_string = "<|toggle|theme|>"
  14. expected_list = ["<Toggle", 'mode="theme"', 'unselectedValue=""']
  15. helpers.test_control_md(gui, md_string, expected_list)
  16. def test_toggle_width_md(gui: Gui, helpers):
  17. md_string = "<|toggle|theme|width=70%|>"
  18. expected_list = ["<Toggle", 'mode="theme"', 'unselectedValue=""', 'width="70%"']
  19. helpers.test_control_md(gui, md_string, expected_list)
  20. def test_toggle_allow_unselected_md(gui: Gui, helpers):
  21. md_string = "<|toggle|lov=1;2|allow_unselect|>"
  22. expected_list = ["<Toggle", 'unselectedValue=""', "allowUnselect={true}"]
  23. helpers.test_control_md(gui, md_string, expected_list)
  24. def test_toggle_lov_md(gui: Gui, test_client, helpers):
  25. gui._bind_var_val("x", "l1")
  26. gui._bind_var_val("lov", [("l1", "v1"), ("l2", "v2")])
  27. md_string = "<|{x}|toggle|lov={lov}|label=Label|>"
  28. expected_list = [
  29. "<Toggle",
  30. 'defaultLov="[[&quot;l1&quot;, &quot;v1&quot;], [&quot;l2&quot;, &quot;v2&quot;]]"',
  31. 'defaultValue="l1"',
  32. 'label="Label"',
  33. "lov={_TpL_tp_TpExPr_gui_get_adapted_lov_lov_tuple_TPMDL_0_0}",
  34. 'updateVars="lov=_TpL_tp_TpExPr_gui_get_adapted_lov_lov_tuple_TPMDL_0_0"',
  35. 'updateVarName="_TpLv_tpec_TpExPr_x_TPMDL_0"',
  36. 'unselectedValue=""',
  37. "value={_TpLv_tpec_TpExPr_x_TPMDL_0}",
  38. ]
  39. helpers.test_control_md(gui, md_string, expected_list)
  40. def test_toggle_html_1(gui: Gui, helpers):
  41. html_string = '<taipy:toggle theme="True" />'
  42. expected_list = ["<Toggle", 'mode="theme"', 'unselectedValue=""']
  43. helpers.test_control_html(gui, html_string, expected_list)
  44. def test_toggle_html_2(gui: Gui, test_client, helpers):
  45. gui._bind_var_val("x", "l1")
  46. gui._bind_var_val("lov", [("l1", "v1"), ("l2", "v2")])
  47. html_string = '<taipy:toggle lov="{lov}" label="Label">{x}</taipy:toggle>'
  48. expected_list = [
  49. "<Toggle",
  50. 'defaultLov="[[&quot;l1&quot;, &quot;v1&quot;], [&quot;l2&quot;, &quot;v2&quot;]]"',
  51. 'defaultValue="l1"',
  52. 'label="Label"',
  53. "lov={_TpL_tp_TpExPr_gui_get_adapted_lov_lov_tuple_TPMDL_0_0}",
  54. 'updateVars="lov=_TpL_tp_TpExPr_gui_get_adapted_lov_lov_tuple_TPMDL_0_0"',
  55. 'updateVarName="_TpLv_tpec_TpExPr_x_TPMDL_0"',
  56. 'unselectedValue=""',
  57. "value={_TpLv_tpec_TpExPr_x_TPMDL_0}",
  58. ]
  59. helpers.test_control_html(gui, html_string, expected_list)
  60. def test_toggle_switch_md(gui: Gui, test_client, helpers):
  61. gui._bind_var_val("x", True)
  62. md_string = "<|{x}|toggle|label=Label|>"
  63. expected_list = [
  64. "<Toggle",
  65. "isSwitch={true}",
  66. "defaultValue={true}",
  67. 'libClassName="taipy-toggle"',
  68. 'updateVarName="_TpB_tpec_TpExPr_x_TPMDL_0"',
  69. "value={_TpB_tpec_TpExPr_x_TPMDL_0}",
  70. 'label="Label"',
  71. ]
  72. helpers.test_control_md(gui, md_string, expected_list)