Add some more tests for downloader
This commit is contained in:
parent
d2cc3e8b6a
commit
09e42ff5f9
|
@ -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')
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue