code: def test_add_skills(self):
      skills_manager = SkillsManager()
  
      @skill
      def skill1():
          """SkillA docstring"""
          pass
  
      skill2 = Skill.from_function(
          func=lambda _: None, description="Skill B"
      )
  
      skills_manager.add_skills(skill1, skill2)
  
      # Ensure that skills are added
      assert skill1 in skills_manager.skills
      assert skill2 in skills_manager.skills
  
      # Test that adding a skill with the same name raises an error
      try:
          skills_manager.add_skills(skill1)
      except ValueError as e:
          assert (
              str(e)
              == f"Skill with name '{skill1.name}' already exists."
          )
      else:
          assert False, "Expected ValueError"
  
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 7 for calling the TestSkills obj's underlying member method code with example usage: obj.test_add_skills() without return types