code: def test_adding_contributors_with_duplicate_email():
      # Datasets
  
      dataset = Dataset(name="Sample  dataset")
      res1 = dataset.add_contributor(
          role=sy.roles.UPLOADER, name="Alice", email="alice@naboo.net"
      )
      res2 = dataset.add_contributor(
          role=sy.roles.UPLOADER,
          name="Alice Smith",
          email="alice@naboo.net",
      )
  
      assert isinstance(res1, SyftSuccess)
      assert isinstance(res2, SyftError)
      assert len(dataset.contributors) == 1
  
      # Assets
      asset = Asset(
          **make_asset_without_mock(), mock=ActionObject.empty()
      )
  
      res3 = asset.add_contributor(
          role=sy.roles.UPLOADER, name="Bob", email="bob@naboo.net"
      )
  
      res4 = asset.add_contributor(
          role=sy.roles.UPLOADER,
          name="Bob Abraham",
          email="bob@naboo.net",
      )
      dataset.add_asset(asset)
  
      assert isinstance(res3, SyftSuccess)
      assert isinstance(res4, SyftError)
      assert len(asset.contributors) == 1
  
imports: import random
  from typing import Any
  from uuid import uuid4
  import numpy
  from pydantic import ValidationError
  import pytest
  import syft
  from syft.node.worker import Worker
  from syft.service.action.action_object import ActionObject
  from syft.service.dataset.dataset import CreateAsset
  from syft.service.dataset.dataset import CreateDataset
  from syft.service.dataset.dataset import _ASSET_WITH_NONE_MOCK_ERROR_MESSAGE
  from syft.service.response import SyftError
  from syft.service.response import SyftSuccess
  from syft.types.twin_object import TwinMode
label_desc: Use image node_id 17 for calling a global function with example usage: test_adding_contributors_with_duplicate_email() without return types