code: def test_conversation_id_in_different_tracks(
      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")
  
      summary = tracker.get_summary()
  
      tracker.start_new_track()
  
      tracker.add_query_info(
          conversation_id="123",
          instance="SmartDatalake",
          query="Plot the GDP's?",
          output_type="json",
      )
  
      # Create a mock function
      mock_func2 = Mock()
      mock_func2.return_value = "code"
      mock_func2.__name__ = "_retry_run_code"
  
      tracker.execute_func(mock_func2, tag="_retry_run_code")
  
      summary2 = tracker.get_summary()
  
      assert (
          summary["query_info"]["conversation_id"]
          == summary2["query_info"]["conversation_id"]
      )
      assert len(tracker._steps) == 1
  
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 25 for calling the TestQueryExecTracker obj's underlying member method code with example usage: obj.test_conversation_id_in_different_tracks(tracker) without return types