code: def test_get_skill_by_func_name(self):
      skills_manager = SkillsManager()
      skill1 = Mock()
      skill2 = Mock()
      skill1.name = "SkillA"
      skill2.name = "SkillB"
      skills_manager.add_skills(skill1, skill2)
  
      # Test that you can retrieve a skill by its function name
      retrieved_skill = skills_manager.get_skill_by_func_name("SkillA")
      assert retrieved_skill == skill1
  
      # Test that a non-existing skill returns None
      retrieved_skill = skills_manager.get_skill_by_func_name("SkillC")
      assert retrieved_skill is None
  
imports: from typing import Optional
  from unittest.mock import MagicMock, Mock, patch
  import uuid
  import pandas
  import pytest
  from pandasai.agent import Agent
  from pandasai.helpers.code_manager import CodeExecutionContext, CodeManager
  from pandasai.helpers.skills_manager import SkillsManager
  from pandasai.llm.fake import FakeLLM
  from pandasai.skills import skill, Skill
  from pandasai.smart_dataframe import SmartDataframe
label_desc: Use image node_id 9 for calling the TestSkills obj's underlying member method code with example usage: obj.test_get_skill_by_func_name() without return types