Add some more integration tests
This commit is contained in:
@@ -226,11 +226,12 @@ class RedditDownloader:
|
|||||||
for multi in self.args.multireddit:
|
for multi in self.args.multireddit:
|
||||||
try:
|
try:
|
||||||
multi = self._sanitise_subreddit_name(multi)
|
multi = self._sanitise_subreddit_name(multi)
|
||||||
out.append(sort_function(
|
multi = self.reddit_instance.multireddit(self.args.user, multi)
|
||||||
self.reddit_instance.multireddit(self.args.user, multi),
|
if not multi.subreddits:
|
||||||
limit=self.args.limit))
|
raise errors.BulkDownloaderException
|
||||||
|
out.append(sort_function(multi, limit=self.args.limit))
|
||||||
logger.debug(f'Added submissions from multireddit {multi}')
|
logger.debug(f'Added submissions from multireddit {multi}')
|
||||||
except (errors.BulkDownloaderException, praw.exceptions.PRAWException) as e:
|
except (errors.BulkDownloaderException, praw.exceptions.PRAWException, prawcore.PrawcoreException) as e:
|
||||||
logger.error(f'Failed to get submissions for multireddit {multi}: {e}')
|
logger.error(f'Failed to get submissions for multireddit {multi}: {e}')
|
||||||
return out
|
return out
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -21,6 +21,13 @@ from bulkredditdownloader.__main__ import cli
|
|||||||
['-s', 'r/TrollXChromosomes/', '-L', 1],
|
['-s', 'r/TrollXChromosomes/', '-L', 1],
|
||||||
['-s', 'TrollXChromosomes/', '-L', 1],
|
['-s', 'TrollXChromosomes/', '-L', 1],
|
||||||
['-s', 'trollxchromosomes', '-L', 1],
|
['-s', 'trollxchromosomes', '-L', 1],
|
||||||
|
['-s', 'trollxchromosomes', '-L', 1, '--time', 'day'],
|
||||||
|
['-s', 'trollxchromosomes', '-L', 1, '--sort', 'new'],
|
||||||
|
['-s', 'trollxchromosomes', '-L', 1, '--time', 'day', '--sort', 'new'],
|
||||||
|
['-s', 'trollxchromosomes', '-L', 1, '--search', 'women'],
|
||||||
|
['-s', 'trollxchromosomes', '-L', 1, '--time', 'day', '--search', 'women'],
|
||||||
|
['-s', 'trollxchromosomes', '-L', 1, '--sort', 'new', '--search', 'women'],
|
||||||
|
['-s', 'trollxchromosomes', '-L', 1, '--time', 'day', '--sort', 'new', '--search', 'women'],
|
||||||
))
|
))
|
||||||
def test_cli_download_subreddits(test_args: list[str], tmp_path: Path):
|
def test_cli_download_subreddits(test_args: list[str], tmp_path: Path):
|
||||||
runner = CliRunner()
|
runner = CliRunner()
|
||||||
@@ -50,6 +57,9 @@ def test_cli_download_links(test_args: list[str], tmp_path: Path):
|
|||||||
@pytest.mark.skipif(Path('test_config.cfg') is False, reason='A test config file is required for integration tests')
|
@pytest.mark.skipif(Path('test_config.cfg') is False, reason='A test config file is required for integration tests')
|
||||||
@pytest.mark.parametrize('test_args', (
|
@pytest.mark.parametrize('test_args', (
|
||||||
['--user', 'helen_darten', '-m', 'cuteanimalpics', '-L', 10],
|
['--user', 'helen_darten', '-m', 'cuteanimalpics', '-L', 10],
|
||||||
|
['--user', 'helen_darten', '-m', 'cuteanimalpics', '-L', 10, '--sort', 'rising'],
|
||||||
|
['--user', 'helen_darten', '-m', 'cuteanimalpics', '-L', 10, '--time', 'week'],
|
||||||
|
['--user', 'helen_darten', '-m', 'cuteanimalpics', '-L', 10, '--time', 'week', '--sort', 'rising'],
|
||||||
))
|
))
|
||||||
def test_cli_download_multireddit(test_args: list[str], tmp_path: Path):
|
def test_cli_download_multireddit(test_args: list[str], tmp_path: Path):
|
||||||
runner = CliRunner()
|
runner = CliRunner()
|
||||||
@@ -59,15 +69,32 @@ def test_cli_download_multireddit(test_args: list[str], tmp_path: Path):
|
|||||||
assert 'Added submissions from multireddit ' in result.output
|
assert 'Added submissions from multireddit ' in result.output
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.online
|
||||||
|
@pytest.mark.reddit
|
||||||
|
@pytest.mark.skipif(Path('test_config.cfg') is False, reason='A test config file is required for integration tests')
|
||||||
|
@pytest.mark.parametrize('test_args', (
|
||||||
|
['--user', 'helen_darten', '-m', 'xxyyzzqwertty', '-L', 10],
|
||||||
|
))
|
||||||
|
def test_cli_download_multireddit_nonexistent(test_args: list[str], tmp_path: Path):
|
||||||
|
runner = CliRunner()
|
||||||
|
test_args = ['download', str(tmp_path), '-v', '--config', 'test_config.cfg'] + test_args
|
||||||
|
result = runner.invoke(cli, test_args)
|
||||||
|
assert result.exit_code == 0
|
||||||
|
assert 'Failed to get submissions for multireddit xxyyzzqwerty' in result.output
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.online
|
@pytest.mark.online
|
||||||
@pytest.mark.reddit
|
@pytest.mark.reddit
|
||||||
@pytest.mark.authenticated
|
@pytest.mark.authenticated
|
||||||
@pytest.mark.skipif(Path('test_config.cfg') is False, reason='A test config file is required for integration tests')
|
@pytest.mark.skipif(Path('test_config.cfg') is False, reason='A test config file is required for integration tests')
|
||||||
@pytest.mark.parametrize('test_args', (
|
@pytest.mark.parametrize('test_args', (
|
||||||
['--user', 'me', '--upvoted', '--authenticate', '-L', 10, '--set-folder-scheme', ''],
|
['--user', 'me', '--upvoted', '--authenticate', '-L', 10],
|
||||||
['--user', 'me', '--saved', '--authenticate', '-L', 10, '--set-folder-scheme', ''],
|
['--user', 'me', '--saved', '--authenticate', '-L', 10],
|
||||||
['--user', 'me', '--submitted', '--authenticate', '-L', 10, '--set-folder-scheme', ''],
|
['--user', 'me', '--submitted', '--authenticate', '-L', 10],
|
||||||
['--user', 'djnish', '--submitted', '-L', 10, '--set-folder-scheme', ''],
|
['--user', 'djnish', '--submitted', '-L', 10],
|
||||||
|
['--user', 'djnish', '--submitted', '-L', 10, '--time', 'month'],
|
||||||
|
['--user', 'djnish', '--submitted', '-L', 10, '--sort', 'controversial'],
|
||||||
|
['--user', 'djnish', '--submitted', '-L', 10, '--sort', 'controversial', '--time', 'month'],
|
||||||
))
|
))
|
||||||
def test_cli_download_user_data_good(test_args: list[str], tmp_path: Path):
|
def test_cli_download_user_data_good(test_args: list[str], tmp_path: Path):
|
||||||
runner = CliRunner()
|
runner = CliRunner()
|
||||||
|
|||||||
Reference in New Issue
Block a user