test_labelled.py 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  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. from unittest import mock
  12. import pytest
  13. from taipy.common.config import Config
  14. from taipy.core import taipy
  15. from taipy.core._entity._labeled import _Labeled
  16. from taipy.core.common.frequency import Frequency
  17. from taipy.core.common.scope import Scope
  18. class MockOwner:
  19. label = "owner_label"
  20. def get_label(self):
  21. return self.label
  22. def test_get_label():
  23. labeled_entity = _Labeled()
  24. with pytest.raises(NotImplementedError):
  25. labeled_entity.get_label()
  26. with pytest.raises(NotImplementedError):
  27. labeled_entity.get_simple_label()
  28. with pytest.raises(AttributeError):
  29. labeled_entity._get_label()
  30. with pytest.raises(AttributeError):
  31. labeled_entity._get_simple_label()
  32. labeled_entity.id = "id"
  33. assert labeled_entity._get_label() == "id"
  34. assert labeled_entity._get_simple_label() == "id"
  35. labeled_entity.config_id = "the config id"
  36. assert labeled_entity._get_label() == "the config id"
  37. assert labeled_entity._get_simple_label() == "the config id"
  38. labeled_entity._properties = {"name": "a name"}
  39. assert labeled_entity._get_label() == "a name"
  40. assert labeled_entity._get_simple_label() == "a name"
  41. labeled_entity.owner_id = "owner_id"
  42. with mock.patch("taipy.core.get") as get_mck:
  43. get_mck.return_value = MockOwner()
  44. assert labeled_entity._get_label() == "owner_label > a name"
  45. assert labeled_entity._get_simple_label() == "a name"
  46. labeled_entity._properties["label"] = "a wonderful label"
  47. assert labeled_entity._get_label() == "a wonderful label"
  48. assert labeled_entity._get_simple_label() == "a wonderful label"
  49. def mult(n1, n2):
  50. return n1 * n2
  51. def test_get_label_complex_case():
  52. dn1_cfg = Config.configure_data_node("dn1", scope=Scope.GLOBAL)
  53. dn2_cfg = Config.configure_data_node("dn2", scope=Scope.CYCLE)
  54. dn3_cfg = Config.configure_data_node("dn3", scope=Scope.CYCLE)
  55. dn4_cfg = Config.configure_data_node("dn4", scope=Scope.SCENARIO)
  56. dn5_cfg = Config.configure_data_node("dn5", scope=Scope.SCENARIO)
  57. tA_cfg = Config.configure_task("t_A_C", mult, [dn1_cfg, dn2_cfg], dn3_cfg)
  58. tB_cfg = Config.configure_task("t_B_S", mult, [dn3_cfg, dn4_cfg], dn5_cfg)
  59. scenario_cfg = Config.configure_scenario("scenario_cfg", [tA_cfg, tB_cfg], [], Frequency.DAILY)
  60. scenario_cfg.add_sequences(
  61. {
  62. "sequence_C": [tA_cfg],
  63. "sequence_S": [tA_cfg, tB_cfg],
  64. }
  65. )
  66. scenario = taipy.create_scenario(scenario_cfg, name="My Name")
  67. cycle = scenario.cycle
  68. cycle.name = "Today"
  69. sequence_C = scenario.sequence_C
  70. sequence_S = scenario.sequence_S
  71. tA = scenario.t_A_C
  72. tB = scenario.t_B_S
  73. dn1 = scenario.dn1
  74. dn2 = scenario.dn2
  75. dn3 = scenario.dn3
  76. dn4 = scenario.dn4
  77. dn5 = scenario.dn5
  78. assert cycle.get_label() == scenario.cycle.name
  79. assert cycle.get_simple_label() == scenario.cycle.name
  80. assert scenario.get_label() == "Today > My Name"
  81. assert scenario.get_simple_label() == "My Name"
  82. assert sequence_C.get_label() == "Today > My Name > sequence_C"
  83. assert sequence_C.get_simple_label() == "sequence_C"
  84. assert sequence_S.get_label() == "Today > My Name > sequence_S"
  85. assert sequence_S.get_simple_label() == "sequence_S"
  86. assert tA.get_label() == "Today > t_A_C"
  87. assert tA.get_simple_label() == "t_A_C"
  88. assert tB.get_label() == "Today > My Name > t_B_S"
  89. assert tB.get_simple_label() == "t_B_S"
  90. assert dn1.get_label() == "dn1"
  91. assert dn1.get_simple_label() == "dn1"
  92. assert dn2.get_label() == "Today > dn2"
  93. assert dn2.get_simple_label() == "dn2"
  94. assert dn3.get_label() == "Today > dn3"
  95. assert dn3.get_simple_label() == "dn3"
  96. assert dn4.get_label() == "Today > My Name > dn4"
  97. assert dn4.get_simple_label() == "dn4"
  98. assert dn5.get_label() == "Today > My Name > dn5"
  99. assert dn5.get_simple_label() == "dn5"