Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_main_noxfile_options_sessions(monkeypatch):
monkeypatch.setattr(
sys,
"argv",
["nox", "-l", "--noxfile", os.path.join(RESOURCES, "noxfile_options.py")],
)
with mock.patch("nox.tasks.honor_list_request") as honor_list_request:
honor_list_request.return_value = 0
with mock.patch("sys.exit"):
nox.__main__.main()
assert honor_list_request.called
# Verify that the config looks correct.
config = honor_list_request.call_args[1]["global_config"]
assert config.sessions == ["test"]
def test_main_color_conflict(capsys, monkeypatch):
monkeypatch.setattr(sys, "argv", [sys.executable, "--forcecolor", "--nocolor"])
with mock.patch("nox.workflow.execute") as execute:
execute.return_value = 1
# Call the main function.
with mock.patch.object(sys, "exit") as exit:
nox.__main__.main()
exit.assert_called_with(1)
_, err = capsys.readouterr()
assert "color" in err
def test_main_short_form_args(monkeypatch):
monkeypatch.setattr(
sys, "argv", [sys.executable, "-f", "noxfile.py", "-s", "1", "2", "-r"]
)
with mock.patch("nox.workflow.execute") as execute:
execute.return_value = 0
# Call the main function.
with mock.patch.object(sys, "exit") as exit:
nox.__main__.main()
exit.assert_called_once_with(0)
assert execute.called
# Verify that the config looks correct.
config = execute.call_args[1]["global_config"]
assert config.noxfile == "noxfile.py"
assert config.sessions == ["1", "2"]
assert config.reuse_existing_virtualenvs is True
def test_main_positional_with_double_hyphen(monkeypatch):
monkeypatch.setattr(sys, "argv", [sys.executable, "--", "1", "2", "3"])
with mock.patch("nox.workflow.execute") as execute:
execute.return_value = 0
# Call the main function.
with mock.patch.object(sys, "exit") as exit:
nox.__main__.main()
exit.assert_called_once_with(0)
assert execute.called
# Verify that the positional args are listed in the config.
config = execute.call_args[1]["global_config"]
assert config.posargs == ["1", "2", "3"]
def test_main_no_args(monkeypatch):
monkeypatch.setattr(sys, "argv", [sys.executable])
with mock.patch("nox.workflow.execute") as execute:
execute.return_value = 0
# Call the function.
with mock.patch.object(sys, "exit") as exit:
nox.__main__.main()
exit.assert_called_once_with(0)
assert execute.called
# Verify that the config looks correct.
config = execute.call_args[1]["global_config"]
assert config.noxfile == "noxfile.py"
assert config.sessions is None
assert not config.reuse_existing_virtualenvs
assert not config.stop_on_first_error
assert config.posargs == []
"argv",
[
"nox",
"-l",
"-s",
"test",
"--noxfile",
os.path.join(RESOURCES, "noxfile_options.py"),
],
)
with mock.patch("nox.tasks.honor_list_request") as honor_list_request:
honor_list_request.return_value = 0
with mock.patch("sys.exit"):
nox.__main__.main()
assert honor_list_request.called
# Verify that the config looks correct.
config = honor_list_request.call_args[1]["global_config"]
assert config.reuse_existing_virtualenvs is True
def test_main_failure(monkeypatch):
monkeypatch.setattr(sys, "argv", [sys.executable])
with mock.patch("nox.workflow.execute") as execute:
execute.return_value = 1
with mock.patch.object(sys, "exit") as exit:
nox.__main__.main()
exit.assert_called_once_with(1)
def test_main_session_from_nox_env_var(monkeypatch, env, sessions):
monkeypatch.setenv("NOXSESSION", env)
monkeypatch.setattr(sys, "argv", [sys.executable])
with mock.patch("nox.workflow.execute") as execute:
execute.return_value = 0
# Call the main function.
with mock.patch.object(sys, "exit") as exit:
nox.__main__.main()
exit.assert_called_once_with(0)
assert execute.called
# Verify that the sessions from the env var are listed in the config.
config = execute.call_args[1]["global_config"]
assert len(config.sessions) == len(sessions)
for session in sessions:
assert session in config.sessions
def test_main_explicit_sessions_with_spaces_in_names(monkeypatch):
monkeypatch.setattr(
sys, "argv", [sys.executable, "-e", "unit tests", "the unit tests"]
)
with mock.patch("nox.workflow.execute") as execute:
execute.return_value = 0
# Call the main function.
with mock.patch.object(sys, "exit") as exit:
nox.__main__.main()
exit.assert_called_once_with(0)
assert execute.called
# Verify that the explicit sessions are listed in the config.
config = execute.call_args[1]["global_config"]
assert config.sessions == ["unit tests", "the unit tests"]
def test_main_positional_args(capsys, monkeypatch):
fake_exit = mock.Mock(side_effect=ValueError("asdf!"))
monkeypatch.setattr(sys, "argv", [sys.executable, "1", "2", "3"])
with mock.patch.object(sys, "exit", fake_exit), pytest.raises(
ValueError, match="asdf!"
):
nox.__main__.main()
_, stderr = capsys.readouterr()
assert "Unknown argument(s) '1 2 3'" in stderr
fake_exit.assert_called_once_with(2)
fake_exit.reset_mock()
monkeypatch.setattr(sys, "argv", [sys.executable, "1", "2", "3", "--"])
with mock.patch.object(sys, "exit", fake_exit), pytest.raises(
ValueError, match="asdf!"
):
nox.__main__.main()
_, stderr = capsys.readouterr()
assert "Unknown argument(s) '1 2 3'" in stderr
fake_exit.assert_called_once_with(2)