def test_conjure_response(self):
        knave = Knave('Foo')

        # Use the SmartMock
        knave.conjure_response = SmartMock(return_value=None)

        knave.query('foo')
        knave.conjure_response.assert_called_once()

        knave.query('foo')
        knave.conjure_response.assert_times_called(2)

        knave.query('foo')
        knave.conjure_response.assert_times_called_with(3, 'foo')
        knave.conjure_response.assert_times_called(3)
    def test_conjure_response_never_called(self):
        knave = Knave('Foo')
        knave.conjure_response = SmartMock(return_value=None)

        knave.conjure_response.assert_never_called()
        knave.conjure_response.assert_times_called(0)