def test_add_session_multiple_pythons(): manifest = Manifest({}, create_mock_config()) def session_func(): pass func = Func(session_func, python=["3.5", "3.6"]) for session in manifest.make_session("my_session", func): manifest.add_session(session) assert len(manifest) == 2
def test_add_session_multiple_pythons(): manifest = Manifest({}, mock.sentinel.CONFIG) def session_func(): pass func = Func(session_func, python=["3.5", "3.6"]) for session in manifest.make_session("my_session", func): manifest.add_session(session) assert len(manifest) == 2
def test_notify_with_posargs(): cfg = create_mock_config() manifest = Manifest({}, cfg) session = manifest.make_session("my_session", Func(lambda session: None))[0] manifest.add_session(session) # delete my_session from the queue manifest.filter_by_name(()) assert session.posargs == cfg.posargs assert manifest.notify("my_session", posargs=["--an-arg"]) assert session.posargs == ["--an-arg"]
def test_add_session_parametrized_multiple_pythons(): manifest = Manifest({}, create_mock_config()) # Define a session with parameters. @nox.parametrize("param", ("a", "b")) def my_session(session, param): pass func = Func(my_session, python=["2.7", "3.6"]) # Add the session to the manifest. for session in manifest.make_session("my_session", func): manifest.add_session(session) assert len(manifest) == 4
def test_extra_pythons(python, extra_pythons, expected): cfg = create_mock_config() cfg.extra_pythons = extra_pythons manifest = Manifest({}, cfg) def session_func(): pass func = Func(session_func, python=python) for session in manifest.make_session("my_session", func): manifest.add_session(session) assert expected == [session.func.python for session in manifest._all_sessions]
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 func = Func(my_session, python=None) # Add the session to the manifest. for session in manifest.make_session("my_session", func): manifest.add_session(session) assert len(manifest) == 3
def test_extra_pythons(python, extra_pythons, expected): cfg = mock.sentinel.CONFIG cfg.force_venv_backend = None cfg.default_venv_backend = None cfg.extra_pythons = extra_pythons manifest = Manifest({}, cfg) def session_func(): pass func = Func(session_func, python=python) for session in manifest.make_session("my_session", func): manifest.add_session(session) assert expected == [ session.func.python for session in manifest._all_sessions ]
return eval(expression, {}, locals) def _null_session_func_(session: Session) -> None: """A no-op session for patemetrized sessions with no available params.""" session.skip("This session had no parameters available.") def _normalized_session_match(session_name: str, session: SessionRunner) -> bool: """Checks if session_name matches session.""" if session_name == session.name or session_name in session.signatures: return True for name in session.signatures: equal_rep = _normalize_arg(session_name) == _normalize_arg(name) if equal_rep: return True # Exhausted return False def _normalize_arg(arg: str) -> str: """Normalize arg for comparison.""" try: return str(ast.dump(ast.parse(arg))) except (TypeError, SyntaxError): return arg _null_session_func = Func(_null_session_func_, python=False)