Rename options
This commit is contained in:
parent
c9d2a23a5f
commit
ba2ab25c2c
|
@ -99,11 +99,11 @@ The following options apply only to the `download` command. This command downloa
|
|||
- This is calculated by MD5 hash
|
||||
- `--search-existing`
|
||||
- This will make the BDFR compile the hashes for every file in `directory` and store them to remove duplicates if `--no-dupes` is also supplied
|
||||
- `--set-file-scheme`
|
||||
- `--file-scheme`
|
||||
- Sets the scheme for files
|
||||
- Default is `{REDDITOR}_{TITLE}_{POSTID}`
|
||||
- See[Folder and File Name Schemes](#folder-and-file-name-schemes) for more details
|
||||
- `--set-folder-scheme`
|
||||
- `--folder-scheme`
|
||||
- Sets the scheme for folders
|
||||
- Default is `{SUBREDDIT}`
|
||||
- See[Folder and File Name Schemes](#folder-and-file-name-schemes) for more details
|
||||
|
|
|
@ -46,8 +46,8 @@ def cli():
|
|||
@click.option('--make-hard-links', is_flag=True, default=None)
|
||||
@click.option('--no-dupes', is_flag=True, default=None)
|
||||
@click.option('--search-existing', is_flag=True, default=None)
|
||||
@click.option('--set-file-scheme', default=None, type=str)
|
||||
@click.option('--set-folder-scheme', default=None, type=str)
|
||||
@click.option('--file-scheme', default=None, type=str)
|
||||
@click.option('--folder-scheme', default=None, type=str)
|
||||
@click.option('--skip', default=None, multiple=True)
|
||||
@click.option('--skip-domain', default=None, multiple=True)
|
||||
@_add_common_options
|
||||
|
|
|
@ -20,8 +20,8 @@ class Configuration(Namespace):
|
|||
self.saved: bool = False
|
||||
self.search: Optional[str] = None
|
||||
self.search_existing: bool = False
|
||||
self.set_file_scheme: str = '{REDDITOR}_{TITLE}_{POSTID}'
|
||||
self.set_folder_scheme: str = '{SUBREDDIT}'
|
||||
self.file_scheme: str = '{REDDITOR}_{TITLE}_{POSTID}'
|
||||
self.folder_scheme: str = '{SUBREDDIT}'
|
||||
self.skip: list[str] = []
|
||||
self.skip_domain: list[str] = []
|
||||
self.sort: str = 'hot'
|
||||
|
|
|
@ -289,7 +289,7 @@ class RedditDownloader:
|
|||
return True
|
||||
|
||||
def _create_file_name_formatter(self) -> FileNameFormatter:
|
||||
return FileNameFormatter(self.args.set_file_scheme, self.args.set_folder_scheme)
|
||||
return FileNameFormatter(self.args.file_scheme, self.args.folder_scheme)
|
||||
|
||||
def _create_time_filter(self) -> RedditTypes.TimeType:
|
||||
try:
|
||||
|
|
|
@ -101,8 +101,8 @@ def test_create_sort_filter(test_sort: str, expected: str, downloader_mock: Magi
|
|||
('{POSTID}', ''),
|
||||
))
|
||||
def test_create_file_name_formatter(test_file_scheme: str, test_folder_scheme: str, downloader_mock: MagicMock):
|
||||
downloader_mock.args.set_file_scheme = test_file_scheme
|
||||
downloader_mock.args.set_folder_scheme = test_folder_scheme
|
||||
downloader_mock.args.file_scheme = test_file_scheme
|
||||
downloader_mock.args.folder_scheme = test_folder_scheme
|
||||
result = RedditDownloader._create_file_name_formatter(downloader_mock)
|
||||
|
||||
assert isinstance(result, FileNameFormatter)
|
||||
|
@ -116,8 +116,8 @@ def test_create_file_name_formatter(test_file_scheme: str, test_folder_scheme: s
|
|||
('test', '{SUBREDDIT}'),
|
||||
))
|
||||
def test_create_file_name_formatter_bad(test_file_scheme: str, test_folder_scheme: str, downloader_mock: MagicMock):
|
||||
downloader_mock.args.set_file_scheme = test_file_scheme
|
||||
downloader_mock.args.set_folder_scheme = test_folder_scheme
|
||||
downloader_mock.args.file_scheme = test_file_scheme
|
||||
downloader_mock.args.folder_scheme = test_folder_scheme
|
||||
with pytest.raises(BulkDownloaderException):
|
||||
RedditDownloader._create_file_name_formatter(downloader_mock)
|
||||
|
||||
|
@ -283,7 +283,7 @@ def test_download_submission(
|
|||
tmp_path: Path):
|
||||
downloader_mock.reddit_instance = reddit_instance
|
||||
downloader_mock.download_filter.check_url.return_value = True
|
||||
downloader_mock.args.set_folder_scheme = ''
|
||||
downloader_mock.args.folder_scheme = ''
|
||||
downloader_mock.file_name_formatter = RedditDownloader._create_file_name_formatter(downloader_mock)
|
||||
downloader_mock.download_directory = tmp_path
|
||||
submission = downloader_mock.reddit_instance.submission(id=test_submission_id)
|
||||
|
@ -302,7 +302,7 @@ def test_download_submission_file_exists(
|
|||
setup_logging(3)
|
||||
downloader_mock.reddit_instance = reddit_instance
|
||||
downloader_mock.download_filter.check_url.return_value = True
|
||||
downloader_mock.args.set_folder_scheme = ''
|
||||
downloader_mock.args.folder_scheme = ''
|
||||
downloader_mock.file_name_formatter = RedditDownloader._create_file_name_formatter(downloader_mock)
|
||||
downloader_mock.download_directory = tmp_path
|
||||
submission = downloader_mock.reddit_instance.submission(id='m1hqw6')
|
||||
|
@ -324,7 +324,7 @@ def test_download_submission_hash_exists(
|
|||
setup_logging(3)
|
||||
downloader_mock.reddit_instance = reddit_instance
|
||||
downloader_mock.download_filter.check_url.return_value = True
|
||||
downloader_mock.args.set_folder_scheme = ''
|
||||
downloader_mock.args.folder_scheme = ''
|
||||
downloader_mock.args.no_dupes = True
|
||||
downloader_mock.file_name_formatter = RedditDownloader._create_file_name_formatter(downloader_mock)
|
||||
downloader_mock.download_directory = tmp_path
|
||||
|
@ -376,8 +376,8 @@ def test_mark_hard_link(downloader_mock: MagicMock, tmp_path: Path, reddit_insta
|
|||
downloader_mock.reddit_instance = reddit_instance
|
||||
downloader_mock.args.make_hard_links = True
|
||||
downloader_mock.download_directory = tmp_path
|
||||
downloader_mock.args.set_folder_scheme = ''
|
||||
downloader_mock.args.set_file_scheme = '{POSTID}'
|
||||
downloader_mock.args.folder_scheme = ''
|
||||
downloader_mock.args.file_scheme = '{POSTID}'
|
||||
downloader_mock.file_name_formatter = RedditDownloader._create_file_name_formatter(downloader_mock)
|
||||
submission = downloader_mock.reddit_instance.submission(id='m1hqw6')
|
||||
original = Path(tmp_path, 'm1hqw6.png')
|
||||
|
@ -385,7 +385,7 @@ def test_mark_hard_link(downloader_mock: MagicMock, tmp_path: Path, reddit_insta
|
|||
RedditDownloader._download_submission(downloader_mock, submission)
|
||||
assert original.exists()
|
||||
|
||||
downloader_mock.args.set_file_scheme = 'test2_{POSTID}'
|
||||
downloader_mock.args.file_scheme = 'test2_{POSTID}'
|
||||
downloader_mock.file_name_formatter = RedditDownloader._create_file_name_formatter(downloader_mock)
|
||||
RedditDownloader._download_submission(downloader_mock, submission)
|
||||
test_file_1_stats = original.stat()
|
||||
|
|
|
@ -115,7 +115,7 @@ def test_cli_download_user_data_good(test_args: list[str], tmp_path: Path):
|
|||
@pytest.mark.authenticated
|
||||
@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', 'me', '-L', 10, '--set-folder-scheme', ''],
|
||||
['--user', 'me', '-L', 10, '--folder-scheme', ''],
|
||||
))
|
||||
def test_cli_download_user_data_bad_me_unauthenticated(test_args: list[str], tmp_path: Path):
|
||||
runner = CliRunner()
|
||||
|
|
Loading…
Reference in a new issue