def test_excluded_ids(test_ids: tuple[str], test_excluded: tuple[str], expected_len: int, downloader_mock: MagicMock):
    downloader_mock.excluded_submission_ids = test_excluded
    test_submissions = []
    for test_id in test_ids:
        m = MagicMock()
        m.id = test_id
        test_submissions.append(m)
    downloader_mock.reddit_lists = [test_submissions]
    RedditDownloader.download(downloader_mock)
    assert downloader_mock._download_submission.call_count == expected_len
def cli_download(context: click.Context, **_):
    config = Configuration()
    config.process_click_arguments(context)
    setup_logging(config.verbose)
    try:
        reddit_downloader = RedditDownloader(config)
        reddit_downloader.download()
    except Exception:
        logger.exception('Downloader exited unexpectedly')
        raise
    else:
        logger.info('Program complete')