From 2b50ee072400226e15ee2526985214ce938a6670 Mon Sep 17 00:00:00 2001 From: "Jay R. Wren" Date: Mon, 1 Nov 2021 09:28:46 -0400 Subject: [PATCH] add test. fix typos. --- README.md | 2 +- bdfr/cloner.py | 2 -- bdfr/downloader.py | 4 ++++ tests/test_downloader.py | 17 +++++++++++++++++ 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 3ffef7f..b84aa3d 100644 --- a/README.md +++ b/README.md @@ -78,7 +78,7 @@ The following options are common between both the `archive` and `download` comma - Can be specified multiple times - Disables certain modules from being used - See [Disabling Modules](#disabling-modules) for more information and a list of module names -- `--ignore` +- `--ignore-user` - This will add a user to ignore - Can be specified multiple times - `--include-id-file` diff --git a/bdfr/cloner.py b/bdfr/cloner.py index c48ae17..979f50f 100644 --- a/bdfr/cloner.py +++ b/bdfr/cloner.py @@ -17,7 +17,5 @@ class RedditCloner(RedditDownloader, Archiver): def download(self): for generator in self.reddit_lists: for submission in generator: - if submission.author.name in self.args.ignore_user: - continue self._download_submission(submission) self.write_entry(submission) diff --git a/bdfr/downloader.py b/bdfr/downloader.py index 70052b2..edfd68e 100644 --- a/bdfr/downloader.py +++ b/bdfr/downloader.py @@ -51,6 +51,10 @@ class RedditDownloader(RedditConnector): elif submission.subreddit.display_name.lower() in self.args.skip_subreddit: logger.debug(f'Submission {submission.id} in {submission.subreddit.display_name} in skip list') return + elif submission.author.name in self.args.ignore_user: + logger.debug( + f'Submission {submission.id} in {submission.subreddit.display_name} by {submission.author.name} an ignored user') + return elif not isinstance(submission, praw.models.Submission): logger.warning(f'{submission.id} is not a submission') return diff --git a/tests/test_downloader.py b/tests/test_downloader.py index e5f0a31..0cc8dec 100644 --- a/tests/test_downloader.py +++ b/tests/test_downloader.py @@ -200,3 +200,20 @@ def test_download_submission( RedditDownloader._download_submission(downloader_mock, submission) folder_contents = list(tmp_path.iterdir()) assert len(folder_contents) == expected_files_len + + +@pytest.mark.parametrize('test_ignore_user', ( + 'alice', +)) +def test_download_ignores_user( + test_ignore_user: str, + mock_function: MagicMock, + downloader_mock: MagicMock, +): + downloader_mock.args.ignore_user = test_ignore_user + submission = downloader_mock.reddit_instance.submission(id='m1hqw6') + mock_function.return_value = MagicMock() + mock_function.return_value.__name__ = 'test' + submission.author.name = test_ignore_user + RedditDownloader._download_submission(downloader_mock, submission) + assert mock_function.call_count == 0