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()
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)
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()
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()
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