1
0
Fork 0
mirror of synced 2024-06-26 18:10:26 +12:00

Add some more tests for downloader

This commit is contained in:
Serene-Arc 2021-03-10 11:06:50 +10:00 committed by Ali Parlakci
parent d2cc3e8b6a
commit 09e42ff5f9
2 changed files with 37 additions and 15 deletions

View file

@ -164,7 +164,7 @@ class RedditDownloader:
def _resolve_user_name(self):
if self.args.user == 'me':
self.args.user = self.reddit_instance.user.me()
self.args.user = self.reddit_instance.user.me().name
def _get_submissions_from_link(self) -> list[list[praw.models.Submission]]:
supplied_submissions = []
@ -215,9 +215,9 @@ class RedditDownloader:
raise errors.RedditAuthenticationError('Accessing user lists requires authentication')
else:
if self.args.upvoted:
generators.append(self.reddit_instance.redditor(self.args.user).upvoted)
generators.append(self.reddit_instance.redditor(self.args.user).upvoted(limit=self.args.limit))
if self.args.saved:
generators.append(self.reddit_instance.redditor(self.args.user).saved)
generators.append(self.reddit_instance.redditor(self.args.user).saved(limit=self.args.limit))
return generators
else:
raise errors.BulkDownloaderException('A user must be supplied to download user data')

View file

@ -300,30 +300,52 @@ def test_get_user_nonexistent_user(test_user: str, downloader_mock: MagicMock, r
@pytest.mark.online
@pytest.mark.reddit
@pytest.mark.skip
def test_get_user_upvoted():
raise NotImplementedError
@pytest.mark.authenticated
def test_get_user_upvoted(downloader_mock: MagicMock, authenticated_reddit_instance: praw.Reddit):
downloader_mock.reddit_instance = authenticated_reddit_instance
downloader_mock.args.user = 'me'
downloader_mock.args.upvoted = True
downloader_mock.args.limit = 10
downloader_mock._determine_sort_function.return_value = praw.models.Subreddit.hot
downloader_mock.sort_filter = RedditTypes.SortType.HOT
RedditDownloader._resolve_user_name(downloader_mock)
results = RedditDownloader._get_user_data(downloader_mock)
assert_all_results_are_submissions(10, results)
@pytest.mark.online
@pytest.mark.reddit
@pytest.mark.skip
def test_get_user_upvoted_unauthenticated():
raise NotImplementedError
def test_get_user_upvoted_unauthenticated(downloader_mock: MagicMock, reddit_instance: praw.Reddit):
downloader_mock.args.user = 'random'
downloader_mock.args.upvoted = True
downloader_mock.authenticated = False
with pytest.raises(RedditAuthenticationError):
RedditDownloader._get_user_data(downloader_mock)
@pytest.mark.online
@pytest.mark.reddit
@pytest.mark.skip
def test_get_user_saved():
raise NotImplementedError
@pytest.mark.authenticated
def test_get_user_saved(downloader_mock: MagicMock, authenticated_reddit_instance: praw.Reddit):
downloader_mock.reddit_instance = authenticated_reddit_instance
downloader_mock.args.user = 'me'
downloader_mock.args.saved = True
downloader_mock.args.limit = 10
downloader_mock._determine_sort_function.return_value = praw.models.Subreddit.hot
downloader_mock.sort_filter = RedditTypes.SortType.HOT
RedditDownloader._resolve_user_name(downloader_mock)
results = RedditDownloader._get_user_data(downloader_mock)
assert_all_results_are_submissions(10, results)
@pytest.mark.online
@pytest.mark.reddit
@pytest.mark.skip
def test_get_user_saved_unauthenticated():
raise NotImplementedError
def test_get_user_saved_unauthenticated(downloader_mock: MagicMock, reddit_instance: praw.Reddit):
downloader_mock.args.user = 'random'
downloader_mock.args.saved = True
downloader_mock.authenticated = False
with pytest.raises(RedditAuthenticationError):
RedditDownloader._get_user_data(downloader_mock)
@pytest.mark.online