def test_config_from_argv_filename_replace(optargs, expected): "The filename replacement mapping can be changed." for opt in ("-r", "--filename-replace"): argv = ["test"] for optarg in optargs: argv.extend([opt, optarg]) config = Config.from_argv(argv) assert config.filename_replace == expected
def test_config_from_argv_defaults(prefs, expected): "A default config is returned when no command-line arguments are given." config = Config.from_argv([], prefs=prefs) assert config.job_path == expected.job_path assert config.filename_replace == expected.filename_replace assert config.output_dir == expected.output_dir assert config.subcommand == Subcommand.HELP assert config.video_dir == expected.video_dir assert config.video_ext == expected.video_ext assert config.video_filename_format == expected.video_filename_format
def test_config_from_argv_output_dir_invalid(path): "Invalid paths are rejected." with pytest.raises(Error): Config.from_argv(["", "--output-dir", path])
def test_config_from_argv_output_dir(opt): "The default path to the output clips directory can be changed." path = Path("/dev/null") config = Config.from_argv(["", opt, str(path)]) assert config.output_dir == path
def test_config_from_argv_job_path_invalid(path): "Invalid paths are rejected." with pytest.raises(Error): Config.from_argv(["", "--job-path", path])
def test_config_from_argv_job_path(opt): "The default path to the job file can be changed." path = Path("/dev/null") config = Config.from_argv(["", opt, str(path)]) assert config.job_path == path
def test_config_from_argv_video_filename_format(opt): "The default input video filename format can be changed." fmt = "%s" config = Config.from_argv(["", opt, fmt]) assert config.video_filename_format == fmt
def test_config_from_argv_video_filename_format_invalid(fmt): "Invalid filename formats are rejected." with pytest.raises(Error): Config.from_argv(["", "--video-filename-format", fmt])
def test_config_from_argv_video_ext(opt): "The default input video file extension can be changed." ext = "rm" config = Config.from_argv(["", opt, ext]) assert config.video_ext == ext
def test_config_from_argv_video_ext_invalid(ext): "Invalid file extensions are rejected." with pytest.raises(Error): Config.from_argv(["", "--video-ext", ext])
def test_config_from_argv_video_dir(opt): "The default path to the input video directory can be changed." path = Path("/dev/null") config = Config.from_argv(["", opt, str(path)]) assert config.video_dir == path
def test_config_from_argv_subcommand_invalid(subcommand_str): "Invalid subcommands are rejected." with pytest.raises(Error): Config.from_argv(["", subcommand_str])
def test_config_from_argv_subcommand(subcommand_str, expected): "The subcommand is set from the first non-option argument." config = Config.from_argv(["", subcommand_str]) assert config.subcommand == expected
def test_config_from_argv_filename_replace_invalid(optarg): "Invalid filename replacement arguments are rejected." for opt in ("-r", "--filename-replace"): with pytest.raises(Error): Config.from_argv(["", opt, optarg])
def test_config_from_argv_output_ext(opt): "The default output clip file extension can be changed." ext = "rm" config = Config.from_argv(["", opt, ext]) assert config.output_ext == ext