test_labelled.py 4.4 KB

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