class_docstr: Unit tests for Agent class
code: def test_call_llm_with_prompt_max_retries_check(self, agent: Agent):
      # Test when LLM call raises an exception, but called call function
      #  'max_retries' time
  
      agent._lake.config.max_retries = 5
      agent._lake.llm.call = Mock()
      agent._lake.llm.call.side_effect = Exception()
  
      with pytest.raises(Exception):
          agent._call_llm_with_prompt("Test Prompt")
  
      assert agent._lake.llm.call.call_count == 5
  
imports: from typing import Optional
  from unittest.mock import Mock
  from pandasai.agent import Agent
  import pandas
  import pytest
  from pandasai.llm.fake import FakeLLM
  from pandasai.prompts.clarification_questions_prompt import ClarificationQuestionPrompt
  from pandasai.prompts.explain_prompt import ExplainPrompt
  from pandasai.smart_datalake import SmartDatalake
label_desc: Use image node_id 18 for calling the TestAgent obj's underlying member method code with example usage: obj.test_call_llm_with_prompt_max_retries_check(agent) without return types