test_chat.py 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. # Copyright 2021-2025 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. import taipy.gui.builder as tgb
  12. from taipy.gui import Gui, Icon
  13. def test_chat_builder_1(gui: Gui, test_client, helpers):
  14. gui._bind_var_val(
  15. "messages",
  16. [
  17. ["1", "msg 1", "Fred"],
  18. ["2", "msg From Another unknown User", "Fredo"],
  19. ["3", "This from the sender User", "taipy"],
  20. ["4", "And from another known one", "Fredi"],
  21. ],
  22. )
  23. gui._bind_var_val(
  24. "chat_properties",
  25. {"users": [["Fred", Icon("/images/favicon.png", "Fred.png")], ["Fredi", Icon("/images/fred.png", "Fred.png")]]},
  26. )
  27. with tgb.Page(frame=None) as page:
  28. tgb.chat(messages="{messages}", properties="{chat_properties}") # type: ignore[attr-defined]
  29. expected_list = [
  30. "<Chat",
  31. 'defaultUsers="[[&quot;Fred&quot;, &#x7B;&quot;path&quot;: &quot;/images/favicon.png&quot;, &quot;text&quot;: &quot;Fred.png&quot;&#x7D;], [&quot;Fredi&quot;, &#x7B;&quot;path&quot;: &quot;/images/fred.png&quot;, &quot;text&quot;: &quot;Fred.png&quot;&#x7D;]]"', # noqa: E501
  32. "messages={_TpD_tpec_TpExPr_messages_TPMDL_0}",
  33. 'updateVarName="_TpD_tpec_TpExPr_messages_TPMDL_0"',
  34. ]
  35. helpers.test_control_builder(gui, page, expected_list)
  36. def test_chat_builder_2(gui: Gui, test_client, helpers):
  37. gui._bind_var_val(
  38. "messages",
  39. [
  40. ["1", "msg 1", "Fred"],
  41. ["2", "msg From Another unknown User", "Fredo"],
  42. ["3", "This from the sender User", "taipy"],
  43. ["4", "And from another known one", "Fredi"],
  44. ],
  45. )
  46. gui._bind_var_val(
  47. "users", [["Fred", Icon("/images/favicon.png", "Fred.png")], ["Fredi", Icon("/images/fred.png", "Fred.png")]]
  48. )
  49. with tgb.Page(frame=None) as page:
  50. tgb.chat(messages="{messages}", users="{users}") # type: ignore[attr-defined]
  51. expected_list = [
  52. "<Chat",
  53. 'defaultUsers="[[&quot;Fred&quot;, &#x7B;&quot;path&quot;: &quot;/images/favicon.png&quot;, &quot;text&quot;: &quot;Fred.png&quot;&#x7D;], [&quot;Fredi&quot;, &#x7B;&quot;path&quot;: &quot;/images/fred.png&quot;, &quot;text&quot;: &quot;Fred.png&quot;&#x7D;]]"', # noqa: E501
  54. "messages={_TpD_tpec_TpExPr_messages_TPMDL_0}",
  55. 'updateVarName="_TpD_tpec_TpExPr_messages_TPMDL_0"',
  56. "users={_TpL_tp_TpExPr_gui_get_adapted_lov_users_list_TPMDL_0_0}",
  57. 'updateVars="users=_TpL_tp_TpExPr_gui_get_adapted_lov_users_list_TPMDL_0_0"',
  58. ]
  59. helpers.test_control_builder(gui, page, expected_list)