code: def test_multiple_instance_of_tracker(
      self, tracker: QueryExecTracker
  ):
      # Create a mock function
      mock_func = Mock()
      mock_func.return_value = "code"
      mock_func.__name__ = "generate_code"
  
      # Execute the mock function using execute_func
      tracker.execute_func(mock_func, tag="generate_code")
  
      tracker2 = QueryExecTracker()
      tracker2.start_new_track()
      tracker2.add_query_info(
          conversation_id="12345",
          instance="SmartDatalake",
          query="which country has the highest GDP?",
          output_type="json",
      )
  
      assert len(tracker._steps) == 1
      assert len(tracker2._steps) == 0
  
      # Execute code with tracker 2
      tracker2.execute_func(mock_func, tag="generate_code")
      assert len(tracker._steps) == 1
      assert len(tracker2._steps) == 1
  
      # Create a mock function
      mock_func2 = Mock()
      mock_func2.return_value = "code"
      mock_func2.__name__ = "_retry_run_code"
      tracker2.execute_func(mock_func2, tag="_retry_run_code")
      assert len(tracker._steps) == 1
      assert len(tracker2._steps) == 2
  
      assert (
          tracker._query_info["conversation_id"]
          != tracker2._query_info["conversation_id"]
      )
  
imports: import json
  import os
  import time
  from typing import Optional
  from unittest.mock import MagicMock, Mock, patch
  import pandas
  import pytest
  from pandasai.helpers.query_exec_tracker import QueryExecTracker
  from pandasai.llm.fake import FakeLLM
  from pandasai.smart_dataframe import SmartDataframe
  from unittest import TestCase
  from datetime import datetime, timedelta
label_desc: Use image node_id 24 for calling the TestQueryExecTracker obj's underlying member method code with example usage: obj.test_multiple_instance_of_tracker(tracker) without return types