def test_sync_all_segment_attempts(self, mocker): """Test that segments don't trigger retries.""" split_synchronizers = mocker.Mock(spec=SplitSynchronizers) counts = {'splits': 0, 'segments': 0} def sync_segments(*_): """Sync Splits.""" counts['segments'] += 1 return False split_synchronizers.segment_sync.synchronize_segments.side_effect = sync_segments split_tasks = mocker.Mock(spec=SplitTasks) synchronizer = Synchronizer(split_synchronizers, split_tasks) synchronizer._synchronize_segments() assert counts['segments'] == 1
def test_sync_all_failed_segments(self, mocker): api = mocker.Mock() storage = mocker.Mock() split_storage = mocker.Mock(spec=SplitStorage) split_storage.get_segment_names.return_value = ['segmentA'] split_sync = mocker.Mock(spec=SplitSynchronizer) split_sync.synchronize_splits.return_value = None def run(x, y): raise APIException("something broke") api.fetch_segment.side_effect = run segment_sync = SegmentSynchronizer(api, split_storage, storage) split_synchronizers = SplitSynchronizers(split_sync, segment_sync, mocker.Mock(), mocker.Mock(), mocker.Mock()) sychronizer = Synchronizer(split_synchronizers, mocker.Mock(spec=SplitTasks)) sychronizer.sync_all() # SyncAll should not throw! assert not sychronizer._synchronize_segments()