Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def make_runner(self):
func = mock.Mock()
func.python = None
func.venv_backend = None
func.reuse_venv = False
runner = nox.sessions.SessionRunner(
name="test",
signatures=["test(1, 2)"],
func=func,
global_config=_options.options.namespace(
noxfile=os.path.join(os.getcwd(), "noxfile.py"),
envdir="envdir",
posargs=mock.sentinel.posargs,
reuse_existing_virtualenvs=False,
error_on_missing_interpreters=False,
),
manifest=mock.create_autospec(nox.manifest.Manifest),
)
return runner
def test_fail_with_silent(capsys):
with pytest.raises(nox.command.CommandFailed):
nox.command.run(
[
PYTHON,
"-c",
'import sys; sys.stdout.write("out");'
'sys.stderr.write("err"); sys.exit(1)',
],
silent=True,
)
out, err = capsys.readouterr()
assert "out" in err
assert "err" in err
def test_custom_stderr(capsys, tmpdir):
with open(str(tmpdir / "err.txt"), "w+b") as stderr:
nox.command.run(
[
PYTHON,
"-c",
'import sys; sys.stdout.write("out");'
'sys.stderr.write("err"); sys.exit(0)',
],
stderr=stderr,
)
out, err = capsys.readouterr()
assert not err
assert "out" not in out
assert "err" not in out
stderr.seek(0)
tempfile_contents = stderr.read().decode("utf-8")
assert "out" not in tempfile_contents
assert "err" in tempfile_contents
def test_custom_stdout_failed_command(capsys, tmpdir):
with open(str(tmpdir / "out.txt"), "w+b") as stdout:
with pytest.raises(nox.command.CommandFailed):
nox.command.run(
[
PYTHON,
"-c",
'import sys; sys.stdout.write("out");'
'sys.stderr.write("err"); sys.exit(1)',
],
stdout=stdout,
)
out, err = capsys.readouterr()
assert not out
assert "out" not in err
assert "err" not in err
stdout.seek(0)
tempfile_contents = stdout.read().decode("utf-8")
assert "out" in tempfile_contents
assert "err" in tempfile_contents
def test_init(self):
result = nox.sessions.Result(
session=mock.sentinel.SESSION, status=mock.sentinel.STATUS
)
assert result.session == mock.sentinel.SESSION
assert result.status == mock.sentinel.STATUS
def make_runner(self):
func = mock.Mock()
func.python = None
func.venv_backend = None
func.reuse_venv = False
runner = nox.sessions.SessionRunner(
name="test",
signatures=["test(1, 2)"],
func=func,
global_config=_options.options.namespace(
noxfile=os.path.join(os.getcwd(), "noxfile.py"),
envdir="envdir",
posargs=mock.sentinel.posargs,
reuse_existing_virtualenvs=False,
error_on_missing_interpreters=False,
),
manifest=mock.create_autospec(nox.manifest.Manifest),
)
return runner
def test_add_session_parametrized():
manifest = Manifest({}, mock.sentinel.CONFIG)
# Define a session with parameters.
@nox.parametrize("param", ("a", "b", "c"))
def my_session(session, param):
pass
my_session.python = None
# Add the session to the manifest.
for session in manifest.make_session("my_session", my_session):
manifest.add_session(session)
assert len(manifest) == 3
def test_filter_by_keyword():
sessions = create_mock_sessions()
manifest = Manifest(sessions, mock.sentinel.CONFIG)
assert len(manifest) == 2
manifest.filter_by_keywords("foo or bar")
assert len(manifest) == 2
manifest.filter_by_keywords("foo")
assert len(manifest) == 1
def test_notify_noop():
manifest = Manifest({}, mock.sentinel.CONFIG)
# Define a session and add it to the manifest.
def my_session(session):
pass
my_session.python = None
for session in manifest.make_session("my_session", my_session):
manifest.add_session(session)
assert len(manifest) == 1
# Establish idempotency; notifying a session already in the queue no-ops.
manifest.notify("my_session")
assert len(manifest) == 1
def test_filter_manifest():
config = _options.options.namespace(sessions=(), keywords=())
manifest = Manifest({"foo": session_func, "bar": session_func}, config)
return_value = tasks.filter_manifest(manifest, config)
assert return_value is manifest
assert len(manifest) == 2