def test_get_compile_command_sort_args(tmpdir_cwd): """ Test that get_compile_command correctly sorts arguments. The order is "pip-compile {sorted options} {sorted src files}". """ with open("setup.py", "w"), open("requirements.in", "w"): pass args = [ "--no-emit-index-url", "--no-emit-trusted-host", "--no-annotate", "setup.py", "--find-links", "foo", "--find-links", "bar", "requirements.in", ] with compile_cli.make_context("pip-compile", args) as ctx: assert get_compile_command(ctx) == ( "pip-compile --find-links=bar --find-links=foo " "--no-annotate --no-emit-index-url --no-emit-trusted-host " "requirements.in setup.py" )
def test_get_compile_command_escaped_filenames(tmpdir_cwd): """ Test that get_compile_command output (re-)escapes ' -- '-escaped filenames. """ with open("--requirements.in", "w"): pass with compile_cli.make_context("pip-compile", ["--", "--requirements.in"]) as ctx: assert get_compile_command(ctx) == "pip-compile -- --requirements.in"
def test_get_compile_command_with_files(tmpdir_cwd, filename): """ Test that get_compile_command returns a command with correct and sanitized file names. """ os.mkdir("sub") path = os.path.join("sub", filename) with open(path, "w"): pass args = [path, "--output-file", "requirements.txt"] with compile_cli.make_context("pip-compile", args) as ctx: assert ( get_compile_command(ctx) == f"pip-compile --output-file=requirements.txt {shlex.quote(path)}")
def test_get_compile_command(tmpdir_cwd, cli_args, expected_command): """ Test general scenarios for the get_compile_command function. """ with compile_cli.make_context("pip-compile", cli_args) as ctx: assert get_compile_command(ctx) == expected_command