Skip to content

Commit aafb6e3

Browse files
committed
add tests for get_merge_fields_data_type_map
1 parent b94b3e6 commit aafb6e3

File tree

1 file changed

+41
-1
lines changed

1 file changed

+41
-1
lines changed

src/tests/test_mailchimp.py

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import os
22
import json
33
import unittest
4-
from unittest.mock import MagicMock, patch
4+
from unittest.mock import patch, MagicMock
55
from src.stac_utils.mailchimp import MailChimpClient, logger
66

77

@@ -344,3 +344,43 @@ def test_upsert_member_fail(self, mock_put, mock_transform, mock_merge_fields_ma
344344
mock_put.assert_not_called()
345345
# no transform_response call for upsert should have occurred
346346
mock_transform.assert_not_called()
347+
348+
@patch.object(MailChimpClient, "paginate_endpoint")
349+
def test_get_merge_fields_data_type_map_success(self, mock_paginate):
350+
"""Test that get_merge_fields_data_type_map returns correct mapping on success"""
351+
mock_paginate.return_value = [
352+
{"tag": "FNAME", "type": "text"},
353+
{"tag": "LNAME", "type": "text"},
354+
{"tag": "VAN_ID", "type": "number"},
355+
]
356+
357+
list_id = "98798798h"
358+
359+
result = self.test_client.get_merge_fields_data_type_map(list_id)
360+
361+
mock_paginate.assert_called_once_with(
362+
base_endpoint=f"lists/{list_id}/merge-fields",
363+
data_key="merge_fields"
364+
)
365+
366+
expected_map = {"FNAME": "text", "LNAME": "text", "VAN_ID": "number"}
367+
self.assertEqual(result, expected_map)
368+
369+
@patch.object(MailChimpClient, "paginate_endpoint")
370+
def test_get_merge_fields_data_type_map_fail(self, mock_paginate):
371+
"""Test that get_merge_fields_data_type_map returns empty dict fail"""
372+
373+
# paginate_endpoint returns no data
374+
mock_paginate.return_value = [{}]
375+
376+
list_id = "zzzz"
377+
result = self.test_client.get_merge_fields_data_type_map(list_id)
378+
379+
# paginate_endpoint called once
380+
mock_paginate.assert_called_once_with(
381+
base_endpoint=f"lists/{list_id}/merge-fields",
382+
data_key="merge_fields"
383+
)
384+
385+
# empty dict for result
386+
self.assertEqual(result, {})

0 commit comments

Comments
 (0)