1
0
Fork 0
mirror of synced 2024-05-19 11:42:40 +12:00

Rename options

This commit is contained in:
Serene-Arc 2021-03-20 14:05:07 +10:00 committed by Ali Parlakci
parent c9d2a23a5f
commit ba2ab25c2c
6 changed files with 18 additions and 18 deletions

View file

@ -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

View file

@ -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

View file

@ -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'

View file

@ -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:

View file

@ -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()

View file

@ -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()