|
@@ -0,0 +1,53 @@
|
|
|
+# 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.
|
|
|
+
|
|
|
+import typing as t
|
|
|
+from unittest.mock import Mock, patch
|
|
|
+
|
|
|
+from taipy.common.config.common.scope import Scope
|
|
|
+from taipy.core.data.pickle import PickleDataNode
|
|
|
+from taipy.gui_core._context import _GuiCoreContext
|
|
|
+
|
|
|
+a_datanode = PickleDataNode("data_node_config_id", Scope.SCENARIO)
|
|
|
+
|
|
|
+
|
|
|
+def mock_core_get(entity_id):
|
|
|
+ if entity_id == a_datanode.id:
|
|
|
+ return a_datanode
|
|
|
+ return None
|
|
|
+
|
|
|
+def mock_is_readable_false(entity_id):
|
|
|
+ return False
|
|
|
+
|
|
|
+
|
|
|
+def mock_is_true(entity_id):
|
|
|
+ return True
|
|
|
+
|
|
|
+
|
|
|
+class MockState:
|
|
|
+ def __init__(self, **kwargs) -> None:
|
|
|
+ self.assign = kwargs.get("assign")
|
|
|
+
|
|
|
+
|
|
|
+class TestGuiCoreContext_data_node_properties:
|
|
|
+ def test_get_data_node_properties(self):
|
|
|
+ with (
|
|
|
+ patch("taipy.gui_core._context.core_get", side_effect=mock_core_get),
|
|
|
+ patch("taipy.gui_core._context.is_readable", side_effect=mock_is_true),
|
|
|
+ ):
|
|
|
+ gui_core_context = _GuiCoreContext(Mock())
|
|
|
+ assert gui_core_context.get_data_node_properties("") is None
|
|
|
+ assert gui_core_context.get_data_node_properties("not a datanode") is None
|
|
|
+ with patch("taipy.gui_core._context.is_readable", side_effect=mock_is_readable_false):
|
|
|
+ assert gui_core_context.get_data_node_properties(a_datanode.id) is None
|
|
|
+ assert gui_core_context.get_data_node_properties(a_datanode.id) is not None
|
|
|
+ assert isinstance(gui_core_context.get_data_node_properties(a_datanode.id), list)
|
|
|
+ assert len(t.cast(list, gui_core_context.get_data_node_properties(a_datanode.id))) == 0
|