コード例 #1
0
def test_get_feature_by_cls():
    """Ensure that a language feature can be retrieved via its class definition."""

    rst = RstLanguageServer()
    expected = Roles(rst)

    rst.add_feature(expected)
    actual = rst.get_feature(Roles)

    assert actual is expected
コード例 #2
0
def test_get_missing_feature_by_string():
    """Ensure that if a language feature is missing ``None`` is returned, but a
    deprecation warning is raised."""

    rst = RstLanguageServer()

    with pytest.deprecated_call():
        actual = rst.get_feature("xxx")

    assert actual is None
コード例 #3
0
ファイル: test_lsp.py プロジェクト: swyddfa/esbonio
def test_get_setup_arguments_feature_only():
    """It should be possible to request just language features."""
    def setup(roles: Roles):
        ...

    server = RstLanguageServer()

    roles = Roles(server)
    server.add_feature(roles)

    args = _get_setup_arguments(server, setup, "modname")

    assert args == {"roles": roles}
コード例 #4
0
ファイル: test_lsp.py プロジェクト: swyddfa/esbonio
def test_get_setup_arguments_server_and_feature():
    """We should also be able to automatically pass the correct language features"""
    def setup(rst: RstLanguageServer, rs: Roles):
        ...

    server = RstLanguageServer()

    roles = Roles(server)
    server.add_feature(roles)

    args = _get_setup_arguments(server, setup, "modname")

    assert args == {"rst": server, "rs": roles}
コード例 #5
0
def test_get_feature_by_string():
    """Ensure that a language feature can be retrieved by a string, but raises a
    deprecation warning."""

    rst = RstLanguageServer()
    expected = Roles(rst)

    rst.add_feature(expected)
    key = f"{expected.__module__}.{expected.__class__.__name__}"

    with pytest.deprecated_call():
        actual = rst.get_feature(key)

    assert actual is expected
コード例 #6
0
ファイル: test_lsp.py プロジェクト: swyddfa/esbonio
def test_get_setup_arguments_missing_feature():
    """If a requested feature is not available the function should be skipped."""
    def setup(rst: RstLanguageServer, rs: Roles):
        ...

    server = RstLanguageServer()
    args = _get_setup_arguments(server, setup, "modname")

    assert args is None
コード例 #7
0
ファイル: test_lsp.py プロジェクト: swyddfa/esbonio
def test_get_setup_arguments_wrong_type():
    """If an unsupported type is requested it should be skipped."""
    def setup(rst: RstLanguageServer, rs: int):
        ...

    server = RstLanguageServer()
    args = _get_setup_arguments(server, setup, "modname")

    assert args is None
コード例 #8
0
ファイル: test_lsp.py プロジェクト: swyddfa/esbonio
def test_get_setup_arguments_rst_server():
    """Ensure that we can correctly construct the set of arguments to pass to a module's
    setup function."""
    def setup(rst: RstLanguageServer):
        ...

    server = RstLanguageServer()
    args = _get_setup_arguments(server, setup, "modname")

    assert args == {"rst": server}
コード例 #9
0
ファイル: test_lsp.py プロジェクト: swyddfa/esbonio
def test_get_setup_arguments_server_superclass():
    """If the setup function is not compatible with the given server it should be
    skipped."""
    def setup(rst: SphinxLanguageServer):
        ...

    server = RstLanguageServer()
    args = _get_setup_arguments(server, setup, "modname")

    assert args is None
コード例 #10
0
def test_get_missing_feature_by_cls():
    """Ensure that if a language feature is missing ``None`` is returned."""

    rst = RstLanguageServer()
    assert rst.get_feature(Roles) is None
コード例 #11
0
ファイル: roles.py プロジェクト: swyddfa/esbonio
def esbonio_setup(rst: RstLanguageServer):
    rst.add_feature(Roles(rst))