"""Mocks for PerformerPerister.""" from copy import deepcopy from oto.response import Response from backend.models.performer_persister import PerformerPersister from tests.testutils.functions import wrap_api_results def get_performers_by_tuid(mocker, performers): """Mock PerformerPersister.get_performers_by_tuid function. Args: performers (Response object, Track object, or dict) """ if isinstance(performers, Response): response = performers else: response = Response(wrap_api_results( [_prepare_performer(performer) for performer in performers])) return mocker.patch.object( PerformerPersister, 'get_performers_by_tuid', return_value=response) def get_performers_by_tuids(mocker, performers): """Mock PerformerPersister.get_performers_by_tuids function. Args: performers (Response object, Track object, or dict) """ if isinstance(performers, Response): response = performers else: response = Response(wrap_api_results( [_prepare_performer(performer) for performer in performers])) return mocker.patch.object( PerformerPersister, 'get_performers_by_tuids', return_value=response) def _prepare_performer(performer): """Make performer dictionary. Args: performer (dict or Performer): performer object or dict Returns: dict: dict representation of performer """ if isinstance(performer, dict): return deepcopy(performer) else: return performer.to_dict()