def test_debug_trace_no_hunter(monkeypatch): """Test that an error is shown if debug_trace is called without hunter.""" monkeypatch.setattr(misccommands, 'hunter', None) with pytest.raises(cmdutils.CommandError, match="You need to install " "'hunter' to use this command!"): misccommands.debug_trace()
def test_debug_trace(mocker): """Check if hunter.trace is properly called.""" # but only if hunter is available pytest.importorskip('hunter') hunter_mock = mocker.patch.object(misccommands, 'hunter') misccommands.debug_trace(1) hunter_mock.trace.assert_called_with(1)
def test_debug_trace_exception(mocker): """Check that exceptions thrown by hunter.trace are handled.""" def _mock_exception(): """Side effect for testing debug_trace's reraise.""" raise Exception('message') hunter_mock = mocker.patch.object(misccommands, 'hunter') hunter_mock.trace.side_effect = _mock_exception with pytest.raises(cmdutils.CommandError, match='Exception: message'): misccommands.debug_trace()