Add tests for new option
This commit is contained in:
parent
b64f508025
commit
77a01e1627
|
@ -111,6 +111,7 @@ class RedditConnector(metaclass=ABCMeta):
|
||||||
self.args.filename_restriction_scheme = self.cfg_parser.get(
|
self.args.filename_restriction_scheme = self.cfg_parser.get(
|
||||||
"DEFAULT", "filename_restriction_scheme", fallback=None
|
"DEFAULT", "filename_restriction_scheme", fallback=None
|
||||||
)
|
)
|
||||||
|
logger.debug(f"Setting filename restriction scheme to '{self.args.filename_restriction_scheme}'")
|
||||||
# Update config on disk
|
# Update config on disk
|
||||||
with open(self.config_location, "w") as file:
|
with open(self.config_location, "w") as file:
|
||||||
self.cfg_parser.write(file)
|
self.cfg_parser.write(file)
|
||||||
|
@ -399,7 +400,9 @@ class RedditConnector(metaclass=ABCMeta):
|
||||||
raise errors.BulkDownloaderException(f"User {name} is banned")
|
raise errors.BulkDownloaderException(f"User {name} is banned")
|
||||||
|
|
||||||
def create_file_name_formatter(self) -> FileNameFormatter:
|
def create_file_name_formatter(self) -> FileNameFormatter:
|
||||||
return FileNameFormatter(self.args.file_scheme, self.args.folder_scheme, self.args.time_format)
|
return FileNameFormatter(
|
||||||
|
self.args.file_scheme, self.args.folder_scheme, self.args.time_format, self.args.filename_restriction_scheme
|
||||||
|
)
|
||||||
|
|
||||||
def create_time_filter(self) -> RedditTypes.TimeType:
|
def create_time_filter(self) -> RedditTypes.TimeType:
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -421,3 +421,22 @@ def test_user_serv_fail(test_args: list[str], response: int, tmp_path: Path):
|
||||||
result = runner.invoke(cli, test_args)
|
result = runner.invoke(cli, test_args)
|
||||||
assert result.exit_code == 0
|
assert result.exit_code == 0
|
||||||
assert f"received {response} HTTP response" in result.output
|
assert f"received {response} HTTP response" in result.output
|
||||||
|
|
||||||
|
|
||||||
|
@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", "102vd5i", "--filename-restriction-scheme", "windows"],
|
||||||
|
["-l", "m3hxzd", "--filename-restriction-scheme", "windows"],
|
||||||
|
),
|
||||||
|
)
|
||||||
|
def test_cli_download_explicit_filename_restriction_scheme(test_args: list[str], tmp_path: Path):
|
||||||
|
runner = CliRunner()
|
||||||
|
test_args = create_basic_args_for_download_runner(test_args, tmp_path)
|
||||||
|
result = runner.invoke(cli, test_args)
|
||||||
|
assert result.exit_code == 0
|
||||||
|
assert "Downloaded submission" in result.output
|
||||||
|
assert "Forcing Windows-compatible filenames" in result.output
|
||||||
|
|
Loading…
Reference in a new issue