Пример #1
0
    def test_run(self, init_event, mocker):
        """Test running all items in an event."""
        mocker.patch.object(
            ht.events.event.HoudiniEvent,
            "enabled",
            new_callable=mocker.PropertyMock(return_value=True),
        )
        mock_stats = mocker.patch.object(ht.events.event.HoudiniEvent,
                                         "stats",
                                         new_callable=mocker.PropertyMock)
        mock_item_map = mocker.patch.object(ht.events.event.HoudiniEvent,
                                            "item_map",
                                            new_callable=mocker.PropertyMock)

        mock_stats.return_value = mocker.MagicMock(
            spec=ht.events.stats.HoudiniEventStats)

        mock_map = {}
        mock_item_map.return_value = mock_map

        event = init_event()

        mock_item1 = mocker.MagicMock(spec=ht.events.item.HoudiniEventItem)
        mock_item1.run.side_effect = lambda sa: sa["order"].append(mock_item1)

        mock_item2 = mocker.MagicMock(spec=ht.events.item.HoudiniEventItem)
        mock_item2.run.side_effect = lambda sa: sa["order"].append(mock_item2)

        mock_item3 = mocker.MagicMock(spec=ht.events.item.HoudiniEventItem)
        mock_item3.run.side_effect = lambda sa: sa["order"].append(mock_item3)

        # Assign objects to event map with priorities.
        mock_map[0] = [mock_item2]
        mock_map[15] = [mock_item3]
        mock_map[5] = [mock_item1]

        scriptargs = {"key": "value", "order": []}

        expected_scriptargs = {
            "key": "value",
            # We expect events to be run in decreasing priority order
            "order": [mock_item3, mock_item1, mock_item2],
        }

        # Run the test event.
        event.run(scriptargs)

        # Make sure each thing was ran.
        mock_item1.run.assert_called_once()
        mock_item2.run.assert_called_once()
        mock_item3.run.assert_called_once()

        assert scriptargs == expected_scriptargs

        # Ensure the context manager was called.
        mock_stats.return_value.__enter__.assert_called_once()
        mock_stats.return_value.__exit__.assert_called_once()
Пример #2
0
    def test_run__not_enabled(self, mock_enabled):
        """Test running an event that is disabled."""
        mock_enabled.return_value = False

        event = ht.events.event.HoudiniEvent(None)

        scriptargs = {"key": "value"}
        event.run(scriptargs)

        # If the event is disabled nothing should happen and scriptargs should
        # be unchanged.
        expected_scriptargs = {"key": "value"}
        self.assertEqual(scriptargs, expected_scriptargs)
Пример #3
0
    def test_run__not_enabled(self, mock_enabled):
        """Test running an event that is disabled."""
        mock_enabled.return_value = False

        event = ht.events.event.HoudiniEvent(None)

        scriptargs = {"key": "value"}
        event.run(scriptargs)

        # If the event is disabled nothing should happen and scriptargs should
        # be unchanged.
        expected_scriptargs = {"key": "value"}
        self.assertEqual(scriptargs, expected_scriptargs)
Пример #4
0
    def test_run(self, mock_enabled, mock_stats, mock_item_map):
        """Test running all items in an event."""
        mock_enabled.return_value = True

        mock_stats.return_value = MagicMock(
            spec=ht.events.stats.HoudiniEventStats)

        mock_map = {}
        mock_item_map.return_value = mock_map

        event = ht.events.event.HoudiniEvent(None)

        mock_item1 = MagicMock(spec=ht.events.item.HoudiniEventItem)
        mock_item1.run.side_effect = lambda sa: sa["order"].append(mock_item1)

        mock_item2 = MagicMock(spec=ht.events.item.HoudiniEventItem)
        mock_item2.run.side_effect = lambda sa: sa["order"].append(mock_item2)

        mock_item3 = MagicMock(spec=ht.events.item.HoudiniEventItem)
        mock_item3.run.side_effect = lambda sa: sa["order"].append(mock_item3)

        # Assign objects to event map with priorities.
        mock_map[0] = [mock_item2]
        mock_map[15] = [mock_item3]
        mock_map[5] = [mock_item1]

        scriptargs = {"key": "value", "order": []}

        expected_scriptargs = {
            "key": "value",
            # We expect events to be run in decreasing priority order
            "order": [mock_item3, mock_item1, mock_item2]
        }

        # Run the test event.
        event.run(scriptargs)

        # Make sure each thing was ran.
        mock_item1.run.assert_called_once()
        mock_item2.run.assert_called_once()
        mock_item3.run.assert_called_once()

        self.assertEqual(scriptargs, expected_scriptargs)

        # Ensure the context manager was called.
        mock_stats.return_value.__enter__.assert_called_once()
        mock_stats.return_value.__exit__.assert_called_once()
Пример #5
0
    def test_run(self, mock_enabled, mock_stats,  mock_item_map):
        """Test running all items in an event."""
        mock_enabled.return_value = True

        mock_stats.return_value = MagicMock(spec=ht.events.stats.HoudiniEventStats)

        mock_map = {}
        mock_item_map.return_value = mock_map

        event = ht.events.event.HoudiniEvent(None)

        mock_item1 = MagicMock(spec=ht.events.item.HoudiniEventItem)
        mock_item1.run.side_effect = lambda sa: sa["order"].append(mock_item1)

        mock_item2 = MagicMock(spec=ht.events.item.HoudiniEventItem)
        mock_item2.run.side_effect = lambda sa: sa["order"].append(mock_item2)

        mock_item3 = MagicMock(spec=ht.events.item.HoudiniEventItem)
        mock_item3.run.side_effect = lambda sa: sa["order"].append(mock_item3)

        # Assign objects to event map with priorities.
        mock_map[0] = [mock_item2]
        mock_map[15] = [mock_item3]
        mock_map[5] = [mock_item1]

        scriptargs = {"key": "value", "order": []}

        expected_scriptargs = {
            "key": "value",
            # We expect events to be run in decreasing priority order
            "order": [mock_item3, mock_item1, mock_item2]
        }

        # Run the test event.
        event.run(scriptargs)

        # Make sure each thing was ran.
        mock_item1.run.assert_called_once()
        mock_item2.run.assert_called_once()
        mock_item3.run.assert_called_once()

        self.assertEqual(scriptargs, expected_scriptargs)

        # Ensure the context manager was called.
        mock_stats.return_value.__enter__.assert_called_once()
        mock_stats.return_value.__exit__.assert_called_once()
Пример #6
0
    def test_run__not_enabled(self, init_event, mocker):
        """Test running an event that is disabled."""
        mocker.patch.object(
            ht.events.event.HoudiniEvent,
            "enabled",
            new_callable=mocker.PropertyMock(return_value=False),
        )

        event = init_event()

        scriptargs = {"key": "value"}
        event.run(scriptargs)

        # If the event is disabled nothing should happen and scriptargs should
        # be unchanged.
        expected_scriptargs = {"key": "value"}
        assert scriptargs == expected_scriptargs