Exemple #1
0
def test_discover_session_functions_decorator():
    # Define sessions using the decorator.
    @nox.session
    def foo():
        pass

    @nox.session
    def bar():
        pass

    def notasession():
        pass

    # Mock up a nox.py module and configuration.
    mock_module = Namespace(
        __name__=foo.__module__,
        foo=foo,
        bar=bar,
        notasession=notasession,
    )
    config = Namespace(sessions=(), keywords=())

    # Get the manifest and establish that it looks like what we expect.
    manifest = tasks.discover_manifest(mock_module, config)
    sessions = list(manifest)
    assert [s.func for s in sessions] == [foo, bar]
    assert [str(i) for i in sessions] == ['foo', 'bar']
Exemple #2
0
def test_discover_session_functions_decorator():
    # Define sessions using the decorator.
    @nox.session
    def foo():
        pass

    @nox.session
    def bar():
        pass

    @nox.session(name="not-a-bar")
    def not_a_bar():
        pass

    def notasession():
        pass

    # Mock up a noxfile.py module and configuration.
    mock_module = argparse.Namespace(__name__=foo.__module__,
                                     foo=foo,
                                     bar=bar,
                                     notasession=notasession)
    config = _options.options.namespace(sessions=(), keywords=(), posargs=[])

    # Get the manifest and establish that it looks like what we expect.
    manifest = tasks.discover_manifest(mock_module, config)
    sessions = list(manifest)
    assert [s.func for s in sessions] == [foo, bar, not_a_bar]
    assert [i.friendly_name for i in sessions] == ["foo", "bar", "not-a-bar"]
Exemple #3
0
def test_discover_manifest_naming_convention():
    # Define sessions with the correct naming convention.
    def session_1():
        pass

    def session_2():
        pass

    def notasession():
        pass

    # Mock up a nox.py module and configuration.
    mock_module = Namespace(
        __name__='irrelevant',
        session_1=session_1,
        session_2=session_2,
        notasession=notasession,
    )
    config = Namespace(sessions=(), keywords=())

    # Get the manifest and establish that it looks like what we expect.
    manifest = tasks.discover_manifest(mock_module, config)
    sessions = list(manifest)
    assert [s.func for s in sessions] == [session_1, session_2]
    assert [str(i) for i in sessions] == ['1', '2']
Exemple #4
0
def _session_completer(prefix, parsed_args, **kwargs):
    global_config = parsed_args
    module = load_nox_module(global_config)
    manifest = discover_manifest(module, global_config)
    filtered_manifest = filter_manifest(manifest, global_config)
    return [
        session.friendly_name
        for session, _ in filtered_manifest.list_all_sessions()
    ]
Exemple #5
0
def _session_completer(prefix: str, parsed_args: argparse.Namespace,
                       **kwargs: Any) -> List[str]:
    global_config = parsed_args
    module = load_nox_module(global_config)
    manifest = discover_manifest(module, global_config)
    filtered_manifest = filter_manifest(manifest, global_config)
    if isinstance(filtered_manifest, int):
        return []
    return [
        session.friendly_name
        for session, _ in filtered_manifest.list_all_sessions()
    ]
Exemple #6
0
def test_discover_session_functions_decorator():
    # Define sessions using the decorator.
    @nox.session
    def foo():
        pass

    @nox.session
    def bar():
        pass

    def notasession():
        pass

    # Mock up a noxfile.py module and configuration.
    mock_module = argparse.Namespace(
        __name__=foo.__module__, foo=foo, bar=bar, notasession=notasession
    )
    config = argparse.Namespace(sessions=(), keywords=())

    # Get the manifest and establish that it looks like what we expect.
    manifest = tasks.discover_manifest(mock_module, config)
    sessions = list(manifest)
    assert [s.func for s in sessions] == [foo, bar]
    assert [i.friendly_name for i in sessions] == ["foo", "bar"]