12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #!/usr/bin/env python3
- # coding=utf-8
- import shutil
- from pathlib import Path
- import pytest
- from click.testing import CliRunner
- from bdfr.__main__ import cli
- does_test_config_exist = Path('./tests/test_config.cfg').exists()
- def copy_test_config(run_path: Path):
- shutil.copy(Path('./tests/test_config.cfg'), Path(run_path, 'test_config.cfg'))
- def create_basic_args_for_cloner_runner(test_args: list[str], tmp_path: Path):
- copy_test_config(tmp_path)
- out = [
- 'clone',
- str(tmp_path),
- '-v',
- '--config', str(Path(tmp_path, 'test_config.cfg')),
- '--log', str(Path(tmp_path, 'test_log.txt')),
- ] + test_args
- return out
- @pytest.mark.online
- @pytest.mark.reddit
- @pytest.mark.skipif(not does_test_config_exist, reason='A test config file is required for integration tests')
- @pytest.mark.parametrize('test_args', (
- ['-l', '6l7778'],
- ['-s', 'TrollXChromosomes/', '-L', 1],
- ['-l', 'eiajjw'],
- ['-l', 'xl0lhi'],
- ))
- def test_cli_scrape_general(test_args: list[str], tmp_path: Path):
- runner = CliRunner()
- test_args = create_basic_args_for_cloner_runner(test_args, tmp_path)
- result = runner.invoke(cli, test_args)
- assert result.exit_code == 0
- assert 'Downloaded submission' in result.output
- assert 'Record for entry item' in result.output
|