"""Tests for the merge function in contributor Neo4j queries.""" from unittest.mock import MagicMock from uuid import UUID from contributor.queries.neo4j.contributors import merge, merge_contributors def test_merge(mocker): """Test the merge function with mock data.""" mock_session = mocker.MagicMock() contributor_uuid = UUID("550e8400-e29b-41d4-a716-446655440000") duplicate_uuid = UUID("aaaaaaaa-bbbb-4ccc-8ddd-eeeeeeeeeeee") updated_by = "test-user" profile_ids = [1, 2, 3] is_admin = True node = MagicMock() node.__getitem__ = lambda self, key: {"uuid": str(contributor_uuid)}[key] record = MagicMock() record.__getitem__ = lambda self, key: {"node": node}[key] mock_session.run.return_value.single.return_value = record mocker.patch( "contributor.queries.neo4j.contributors.get_label_by_contributor_uuid", return_value=None, ) mocker.patch( "contributor.queries.neo4j.contributors._node_to_dict", return_value={"uuid": str(contributor_uuid)}, ) merge( session=mock_session, contributor_uuid=contributor_uuid, duplicate_uuid=duplicate_uuid, updated_by=updated_by, profile_ids=profile_ids, is_admin=is_admin, ) mock_session.run.assert_called_once_with( merge_contributors, contributor_uuid=str(contributor_uuid), duplicate_uuid=str(duplicate_uuid), updated_by=updated_by, profile_ids=profile_ids, is_admin=is_admin, )