from unittest.mock import MagicMock from src.utils import s3_backoff_utils as s3u def test_get_matching_s3_objects_and_keys(): # Mock paginator to yield two pages, one with Contents and one empty paginator = MagicMock() paginator.paginate.return_value = [ {'Contents': [{'Key': 'a.txt'}, {'Key': 'b.csv'}]}, {}, ] client = MagicMock() client.get_paginator.return_value = paginator # Patch s3_client used by module s3u.s3_client = client objs = list( s3u.get_matching_s3_objects('bucket', prefix='', suffix='.txt') ) keys = list(s3u.get_matching_s3_keys('bucket', prefix='', suffix='.txt')) assert len(objs) == 1 and objs[0]['Key'] == 'a.txt' assert keys == ['a.txt']