File: TestToolModel.py

package info (click to toggle)
uranium 5.0.0-7
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 5,304 kB
  • sloc: python: 31,765; sh: 132; makefile: 12
file content (33 lines) | stat: -rw-r--r-- 1,201 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import pytest
from unittest.mock import patch, mock_open, MagicMock

from UM.Qt.Bindings.ToolModel import ToolModel

controller = MagicMock()


@pytest.fixture
def tool_model():
    mocked_application = MagicMock()
    mocked_application.getController = MagicMock(return_value = controller)
    with patch("UM.PluginRegistry.PluginRegistry.getInstance"):
        with patch("UM.Application.Application.getInstance", MagicMock(return_value = mocked_application)):
            model = ToolModel()

    return model


def test_onToolsChanged_visible_tool(tool_model):
    tool = MagicMock(getMetaData = MagicMock(return_value = {"visible": True}))
    controller.getAllTools = MagicMock(return_value = {"beep_tool": tool})
    with patch("UM.PluginRegistry.PluginRegistry.getInstance"):
        tool_model._onToolsChanged()
    assert len(tool_model.items) == 1


def test_onToolsChanged_invisible_tool(tool_model):
    tool = MagicMock(getMetaData=MagicMock(return_value={"visible": False}))
    controller.getAllTools = MagicMock(return_value={"beep_tool": tool})
    with patch("UM.PluginRegistry.PluginRegistry.getInstance"):
        tool_model._onToolsChanged()
    assert len(tool_model.items) == 0