From 0bbd9e375e32b0f363783e315ad9b510b26a4da3 Mon Sep 17 00:00:00 2001 From: Michael Panchenko Date: Mon, 23 Mar 2026 15:12:51 +0100 Subject: [PATCH] Reformat (minor, after replacing black with ruff) Black dependency created a dependabot warning and couldn't be bumped since it collided with pathspec dependencies. Since ruff can also format, black is not needed. But we now have these small format changes, mostly in test files --- scripts/print_language_list.py | 2 +- src/serena/project.py | 4 +- src/serena/tools/file_tools.py | 6 +-- src/serena/util/shell.py | 4 +- src/serena/util/thread.py | 1 - .../groovy_language_server.py | 6 +-- src/solidlsp/language_servers/intelephense.py | 6 +-- .../kotlin_language_server.py | 6 +-- .../language_servers/ocaml_lsp_server.py | 4 +- src/solidlsp/language_servers/phpactor.py | 6 +-- .../typescript_language_server.py | 7 +-- .../language_servers/vts_language_server.py | 1 + src/solidlsp/language_servers/zls.py | 3 +- test/serena/test_serena_agent.py | 18 +++---- test/serena/test_text_utils.py | 6 +-- test/solidlsp/al/test_al_basic.py | 42 ++++++++-------- test/solidlsp/cpp/test_cpp_basic.py | 6 +-- test/solidlsp/csharp/test_csharp_basic.py | 12 ++--- .../csharp/test_csharp_nuget_download.py | 6 +-- test/solidlsp/dart/test_dart_basic.py | 6 +-- .../elixir/test_elixir_ignored_dirs.py | 1 - .../erlang/test_erlang_symbol_retrieval.py | 3 +- test/solidlsp/fortran/test_fortran_basic.py | 36 +++++++------- test/solidlsp/go/test_go_basic.py | 6 +-- test/solidlsp/haskell/test_haskell_basic.py | 24 +++++----- test/solidlsp/hlsl/test_hlsl_full_index.py | 6 +-- test/solidlsp/java/test_java_basic.py | 6 +-- test/solidlsp/kotlin/test_kotlin_basic.py | 6 +-- test/solidlsp/lean4/test_lean4_basic.py | 18 +++---- test/solidlsp/lua/test_lua_basic.py | 24 +++++----- test/solidlsp/markdown/test_markdown_basic.py | 12 ++--- test/solidlsp/nix/test_nix_basic.py | 20 ++++---- test/solidlsp/ocaml/test_ocaml_basic.py | 6 +-- test/solidlsp/php/test_php_basic.py | 6 +-- .../powershell/test_powershell_basic.py | 18 +++---- test/solidlsp/r/test_r_basic.py | 6 +-- test/solidlsp/rego/test_rego_basic.py | 6 +-- .../ruby/test_ruby_symbol_retrieval.py | 36 +++++++------- test/solidlsp/rust/test_rust_basic.py | 12 ++--- test/solidlsp/solidity/test_solidity_basic.py | 6 +-- .../systemverilog/test_systemverilog_basic.py | 24 +++++----- .../toml/test_toml_symbol_retrieval.py | 6 +-- .../typescript/test_typescript_basic.py | 6 +-- test/solidlsp/vue/test_vue_basic.py | 48 +++++++++---------- test/solidlsp/vue/test_vue_error_cases.py | 24 +++++----- test/solidlsp/vue/test_vue_rename.py | 6 +-- .../solidlsp/vue/test_vue_symbol_retrieval.py | 30 ++++++------ test/solidlsp/zig/test_zig_basic.py | 6 +-- 48 files changed, 278 insertions(+), 282 deletions(-) diff --git a/scripts/print_language_list.py b/scripts/print_language_list.py index a70acc2e..6a156731 100644 --- a/scripts/print_language_list.py +++ b/scripts/print_language_list.py @@ -7,7 +7,7 @@ from solidlsp.ls_config import Language if __name__ == "__main__": lang_strings = sorted([l.value for l in Language]) max_len = max(len(s) for s in lang_strings) - fmt = f"%-{max_len+2}s" + fmt = f"%-{max_len + 2}s" for i, l in enumerate(lang_strings): if i % 5 == 0: print("\n# ", end="") diff --git a/src/serena/project.py b/src/serena/project.py index 0f37fe26..5995c3e7 100644 --- a/src/serena/project.py +++ b/src/serena/project.py @@ -85,8 +85,7 @@ class MemoriesManager: if self._is_global(name): if name == self.GLOBAL_TOPIC: raise ValueError( - f'Bare "{self.GLOBAL_TOPIC}" is not a valid memory name. ' - f'Use "{self.GLOBAL_TOPIC}/" to address a global memory.' + f'Bare "{self.GLOBAL_TOPIC}" is not a valid memory name. Use "{self.GLOBAL_TOPIC}/" to address a global memory.' ) # Strip "global/" prefix and resolve against global dir sub_name = name[len(self.GLOBAL_TOPIC) + 1 :] @@ -312,7 +311,6 @@ class Project(ToStringMixin): def _gather_ignorespec(self) -> None: with LogTime(f"Gathering ignore spec for project {self.project_config.project_name}", logger=log): - # gather ignored paths from the global configuration, project configuration, and gitignore files global_ignored_paths = self.serena_config.ignored_paths ignored_patterns = list(global_ignored_paths) + list(self.project_config.ignored_paths) diff --git a/src/serena/tools/file_tools.py b/src/serena/tools/file_tools.py index 8476070c..d4c4e64a 100644 --- a/src/serena/tools/file_tools.py +++ b/src/serena/tools/file_tools.py @@ -68,9 +68,9 @@ class CreateTextFileTool(Tool, ToolMarkerCanEdit): if will_overwrite_existing: self.project.validate_relative_path(relative_path, require_not_ignored=True) else: - assert abs_path.is_relative_to( - self.get_project_root() - ), f"Cannot create file outside of the project directory, got {relative_path=}" + assert abs_path.is_relative_to(self.get_project_root()), ( + f"Cannot create file outside of the project directory, got {relative_path=}" + ) abs_path.parent.mkdir(parents=True, exist_ok=True) abs_path.write_text(content, encoding=self.project.project_config.encoding, newline=self.project.line_ending.newline_str) diff --git a/src/serena/util/shell.py b/src/serena/util/shell.py index 3b310852..ce10cdbf 100644 --- a/src/serena/util/shell.py +++ b/src/serena/util/shell.py @@ -43,7 +43,9 @@ def execute_shell_command(command: str, cwd: str | None = None, capture_stderr: def subprocess_check_output(args: list[str], encoding: str = "utf-8", strip: bool = True, timeout: float | None = None) -> str: - output = subprocess.check_output(args, stdin=subprocess.DEVNULL, stderr=subprocess.PIPE, timeout=timeout, env=os.environ.copy(), **subprocess_kwargs()).decode(encoding) # type: ignore + output = subprocess.check_output( + args, stdin=subprocess.DEVNULL, stderr=subprocess.PIPE, timeout=timeout, env=os.environ.copy(), **subprocess_kwargs() + ).decode(encoding) # type: ignore if strip: output = output.strip() return output diff --git a/src/serena/util/thread.py b/src/serena/util/thread.py index 7b779187..6d21ebed 100644 --- a/src/serena/util/thread.py +++ b/src/serena/util/thread.py @@ -16,7 +16,6 @@ T = TypeVar("T") class ExecutionResult(Generic[T], ToStringMixin): - class Status(Enum): SUCCESS = "success" TIMEOUT = "timeout" diff --git a/src/solidlsp/language_servers/groovy_language_server.py b/src/solidlsp/language_servers/groovy_language_server.py index 6a2dca09..81a4b4b1 100644 --- a/src/solidlsp/language_servers/groovy_language_server.py +++ b/src/solidlsp/language_servers/groovy_language_server.py @@ -78,9 +78,9 @@ class GroovyLanguageServer(SolidLanguageServer): platform_id = PlatformUtils.get_platform_id() # Verify platform support - assert ( - platform_id.value.startswith("win-") or platform_id.value.startswith("linux-") or platform_id.value.startswith("osx-") - ), "Only Windows, Linux and macOS platforms are supported for Groovy in multilspy at the moment" + assert platform_id.value.startswith("win-") or platform_id.value.startswith("linux-") or platform_id.value.startswith("osx-"), ( + "Only Windows, Linux and macOS platforms are supported for Groovy in multilspy at the moment" + ) # Check if user specified custom Java home path java_home_path = None diff --git a/src/solidlsp/language_servers/intelephense.py b/src/solidlsp/language_servers/intelephense.py index d8267e63..e5953c9d 100644 --- a/src/solidlsp/language_servers/intelephense.py +++ b/src/solidlsp/language_servers/intelephense.py @@ -76,9 +76,9 @@ class Intelephense(SolidLanguageServer): ) deps.install(intelephense_ls_dir) - assert os.path.exists( - intelephense_executable_path - ), f"intelephense executable not found at {intelephense_executable_path}, something went wrong." + assert os.path.exists(intelephense_executable_path), ( + f"intelephense executable not found at {intelephense_executable_path}, something went wrong." + ) return intelephense_executable_path diff --git a/src/solidlsp/language_servers/kotlin_language_server.py b/src/solidlsp/language_servers/kotlin_language_server.py index ec866481..e8a04fc5 100644 --- a/src/solidlsp/language_servers/kotlin_language_server.py +++ b/src/solidlsp/language_servers/kotlin_language_server.py @@ -93,9 +93,9 @@ class KotlinLanguageServer(SolidLanguageServer): platform_id = PlatformUtils.get_platform_id() # Verify platform support - assert ( - platform_id.value.startswith("win-") or platform_id.value.startswith("linux-") or platform_id.value.startswith("osx-") - ), "Only Windows, Linux and macOS platforms are supported for Kotlin in multilspy at the moment" + assert platform_id.value.startswith("win-") or platform_id.value.startswith("linux-") or platform_id.value.startswith("osx-"), ( + "Only Windows, Linux and macOS platforms are supported for Kotlin in multilspy at the moment" + ) kotlin_suffix = PLATFORM_KOTLIN_SUFFIX.get(platform_id.value) assert kotlin_suffix, f"Unsupported platform for Kotlin LSP: {platform_id.value}" diff --git a/src/solidlsp/language_servers/ocaml_lsp_server.py b/src/solidlsp/language_servers/ocaml_lsp_server.py index 7a81495d..8c9bc356 100644 --- a/src/solidlsp/language_servers/ocaml_lsp_server.py +++ b/src/solidlsp/language_servers/ocaml_lsp_server.py @@ -137,9 +137,7 @@ class OcamlLanguageServer(SolidLanguageServer): ) except subprocess.CalledProcessError as e: raise RuntimeError( - f"Failed to detect ocaml-lsp-server version: {e.stderr}\n" - "Please install ocaml-lsp-server:\n" - " opam install ocaml-lsp-server" + f"Failed to detect ocaml-lsp-server version: {e.stderr}\nPlease install ocaml-lsp-server:\n opam install ocaml-lsp-server" ) from e except FileNotFoundError as e: raise RuntimeError("opam not found. Please install opam:\n https://opam.ocaml.org/doc/Install.html") from e diff --git a/src/solidlsp/language_servers/phpactor.py b/src/solidlsp/language_servers/phpactor.py index 2d10ca1c..d10a038b 100644 --- a/src/solidlsp/language_servers/phpactor.py +++ b/src/solidlsp/language_servers/phpactor.py @@ -46,9 +46,9 @@ class PhpactorServer(SolidLanguageServer): """ # Verify PHP is installed php_path = shutil.which("php") - assert ( - php_path is not None - ), "PHP is not installed or not found in PATH. Phpactor requires PHP 8.1+. Please install PHP and try again." + assert php_path is not None, ( + "PHP is not installed or not found in PATH. Phpactor requires PHP 8.1+. Please install PHP and try again." + ) # Check PHP version (Phpactor requires PHP 8.1+) result = subprocess.run(["php", "--version"], capture_output=True, text=True, check=False) diff --git a/src/solidlsp/language_servers/typescript_language_server.py b/src/solidlsp/language_servers/typescript_language_server.py index 21864455..4c428986 100644 --- a/src/solidlsp/language_servers/typescript_language_server.py +++ b/src/solidlsp/language_servers/typescript_language_server.py @@ -141,9 +141,9 @@ class TypeScriptLanguageServer(SolidLanguageServer): PlatformId.WIN_x64, PlatformId.WIN_arm64, ] - assert ( - platform_id in valid_platforms - ), f"Platform {platform_id} is not supported for multilspy javascript/typescript at the moment" + assert platform_id in valid_platforms, ( + f"Platform {platform_id} is not supported for multilspy javascript/typescript at the moment" + ) # Get version settings from ls_specific_settings or use defaults language_specific_config = self._custom_settings @@ -272,6 +272,7 @@ class TypeScriptLanguageServer(SolidLanguageServer): await lsp.request_references(...) # Shutdown the LanguageServer on exit from scope # LanguageServer has been shutdown + ``` """ def register_capability_handler(params: dict) -> None: diff --git a/src/solidlsp/language_servers/vts_language_server.py b/src/solidlsp/language_servers/vts_language_server.py index e60eda1a..90fc18ff 100644 --- a/src/solidlsp/language_servers/vts_language_server.py +++ b/src/solidlsp/language_servers/vts_language_server.py @@ -155,6 +155,7 @@ class VtsLanguageServer(SolidLanguageServer): await lsp.request_references(...) # Shutdown the LanguageServer on exit from scope # LanguageServer has been shutdown + ``` """ def register_capability_handler(params: dict) -> None: diff --git a/src/solidlsp/language_servers/zls.py b/src/solidlsp/language_servers/zls.py index 8f8a86e8..368f57eb 100644 --- a/src/solidlsp/language_servers/zls.py +++ b/src/solidlsp/language_servers/zls.py @@ -70,8 +70,7 @@ class ZigLanguageServer(SolidLanguageServer): # Check for Windows and provide error message if platform.system() == "Windows": raise RuntimeError( - "Windows is not supported by ZLS in this integration. " - "Cross-file references don't work reliably on Windows. Reason unknown." + "Windows is not supported by ZLS in this integration. Cross-file references don't work reliably on Windows. Reason unknown." ) zig_version = ZigLanguageServer._get_zig_version() diff --git a/test/serena/test_serena_agent.py b/test/serena/test_serena_agent.py index 3bd7241d..0b40ab28 100644 --- a/test/serena/test_serena_agent.py +++ b/test/serena/test_serena_agent.py @@ -139,9 +139,9 @@ class TestSerenaAgent: continue symbol_info = s.get("info") assert symbol_info, f"Expected symbol info to be present for symbol: {s}" - assert ( - symbol_name in s["info"] - ), f"[{serena_agent.get_active_lsp_languages()[0]}] Expected symbol info to contain symbol name {symbol_name}. Info: {s['info']}" + assert symbol_name in s["info"], ( + f"[{serena_agent.get_active_lsp_languages()[0]}] Expected symbol info to contain symbol name {symbol_name}. Info: {s['info']}" + ) # special additional test for Java, since Eclipse returns hover in a complex format and we want to make sure to get it right if s["kind"] == SymbolKind.Class.name and serena_agent.get_active_lsp_languages() == [Language.JAVA]: assert "A simple model class" in symbol_info, f"Java class docstring not found in symbol info: {s}" @@ -166,9 +166,9 @@ class TestSerenaAgent: f"Expected to find Dog/greet in {sample_php} but got empty result. " "This may indicate that find_symbol is not routing to the PHP language server for PHP files." ) - assert any( - "greet" in s["name_path"] and sample_php in s["relative_path"] for s in symbols - ), f"Dog/greet not found in {sample_php}. Symbols: {symbols}" + assert any("greet" in s["name_path"] and sample_php in s["relative_path"] for s in symbols), ( + f"Dog/greet not found in {sample_php}. Symbols: {symbols}" + ) @pytest.mark.parametrize( "serena_agent,symbol_name,expected_kind,expected_file", @@ -478,9 +478,9 @@ class TestSerenaAgent: ) symbols = json.loads(result) - assert ( - len(symbols) == num_expected - ), f"Expected to find {num_expected} symbols for overloaded function {name_path}. Symbols found: {symbols}" + assert len(symbols) == num_expected, ( + f"Expected to find {num_expected} symbols for overloaded function {name_path}. Symbols found: {symbols}" + ) @pytest.mark.parametrize( "serena_agent,name_path,relative_path", diff --git a/test/serena/test_text_utils.py b/test/serena/test_text_utils.py index 0b8dd39d..8a315895 100644 --- a/test/serena/test_text_utils.py +++ b/test/serena/test_text_utils.py @@ -346,9 +346,9 @@ class TestSearchFiles: actual_matched_files = sorted([result.source_file_path for result in results if result.source_file_path]) # Assert that the matched files are exactly the ones expected - assert actual_matched_files == sorted( - expected_matched_files - ), f"Pattern '{paths_include_glob}' failed: expected {sorted(expected_matched_files)}, got {actual_matched_files}" + assert actual_matched_files == sorted(expected_matched_files), ( + f"Pattern '{paths_include_glob}' failed: expected {sorted(expected_matched_files)}, got {actual_matched_files}" + ) # Basic check on results structure if files were expected if expected_matched_files: diff --git a/test/solidlsp/al/test_al_basic.py b/test/solidlsp/al/test_al_basic.py index 51bae0b7..c226421f 100644 --- a/test/solidlsp/al/test_al_basic.py +++ b/test/solidlsp/al/test_al_basic.py @@ -124,9 +124,9 @@ class TestALLanguageServer: # Check for codeunit symbols assert SymbolUtils.symbol_tree_contains_name(symbols, "CustomerMgt"), "CustomerMgt codeunit not found in symbol tree" - assert SymbolUtils.symbol_tree_contains_name( - symbols, "PaymentProcessorImpl" - ), "PaymentProcessorImpl codeunit not found in symbol tree" + assert SymbolUtils.symbol_tree_contains_name(symbols, "PaymentProcessorImpl"), ( + "PaymentProcessorImpl codeunit not found in symbol tree" + ) # Check for enum symbol assert SymbolUtils.symbol_tree_contains_name(symbols, "CustomerType"), "CustomerType enum not found in symbol tree" @@ -209,14 +209,14 @@ class TestALLanguageServer: refs = language_server.request_references(table_file, sel_start["line"], sel_start["character"]) # The Customer table should be referenced in CustomerMgt.Codeunit.al - assert any( - "CustomerMgt.Codeunit.al" in ref.get("relativePath", "") for ref in refs - ), "Customer table should be referenced in CustomerMgt.Codeunit.al" + assert any("CustomerMgt.Codeunit.al" in ref.get("relativePath", "") for ref in refs), ( + "Customer table should be referenced in CustomerMgt.Codeunit.al" + ) # It should also be referenced in CustomerCard.Page.al - assert any( - "CustomerCard.Page.al" in ref.get("relativePath", "") for ref in refs - ), "Customer table should be referenced in CustomerCard.Page.al" + assert any("CustomerCard.Page.al" in ref.get("relativePath", "") for ref in refs), ( + "Customer table should be referenced in CustomerCard.Page.al" + ) @pytest.mark.parametrize("language_server", [Language.AL], indirect=True) def test_cross_file_symbols(self, language_server: SolidLanguageServer) -> None: @@ -392,9 +392,9 @@ class TestALHoverInjection: assert hover is not None, f"Hover should return a result for {symbol_name}" assert value is not None, f"Hover should have content for {symbol_name}" - assert ( - f"**{expected_full_name}**" in value - ), f"Hover for {symbol_name} should contain '{expected_full_name}'. Got: {value[:200]}" + assert f"**{expected_full_name}**" in value, ( + f"Hover for {symbol_name} should contain '{expected_full_name}'. Got: {value[:200]}" + ) @pytest.mark.parametrize("language_server", [Language.AL], indirect=True) def test_hover_contains_separator_after_injection(self, language_server: SolidLanguageServer) -> None: @@ -490,9 +490,9 @@ class TestALPathNormalization: hover = language_server.request_hover(file_path_forward, line, char) assert hover is not None, "Hover should return a result" value = hover.get("contents", {}).get("value", "") - assert ( - '**Table 50000 "TEST Customer"**' in value - ), f"Hover injection should work with mixed path formats. Got: {value[:200]}" + assert '**Table 50000 "TEST Customer"**' in value, ( + f"Hover injection should work with mixed path formats. Got: {value[:200]}" + ) return pytest.fail("Could not find TEST Customer symbol") @@ -517,9 +517,9 @@ class TestALPathNormalization: hover = language_server.request_hover(file_path_backslash, line, char) assert hover is not None, "Hover should return a result" value = hover.get("contents", {}).get("value", "") - assert ( - '**Table 50000 "TEST Customer"**' in value - ), f"Hover injection should work with mixed path formats. Got: {value[:200]}" + assert '**Table 50000 "TEST Customer"**' in value, ( + f"Hover injection should work with mixed path formats. Got: {value[:200]}" + ) return pytest.fail("Could not find TEST Customer symbol") @@ -552,7 +552,7 @@ class TestALPathNormalization: hover = language_server.request_hover(hover_path, line, char) assert hover is not None, f"Hover should return a result for {symbol_name}" value = hover.get("contents", {}).get("value", "") - assert ( - f"**{expected_injection}**" in value - ), f"Hover for {symbol_name} should have injection with mixed paths. Got: {value[:200]}" + assert f"**{expected_injection}**" in value, ( + f"Hover for {symbol_name} should have injection with mixed paths. Got: {value[:200]}" + ) break diff --git a/test/solidlsp/cpp/test_cpp_basic.py b/test/solidlsp/cpp/test_cpp_basic.py index 715ef6c9..a8767949 100644 --- a/test/solidlsp/cpp/test_cpp_basic.py +++ b/test/solidlsp/cpp/test_cpp_basic.py @@ -135,9 +135,9 @@ int use_add() { ref_files = [ref.get("relativePath", "") for ref in refs] # Should find reference in the newly written file - assert any( - "temp_new_file.cpp" in ref_file for ref_file in ref_files - ), f"Should find reference in newly written temp_new_file.cpp, {ref_files=}" + assert any("temp_new_file.cpp" in ref_file for ref_file in ref_files), ( + f"Should find reference in newly written temp_new_file.cpp, {ref_files=}" + ) finally: # Clean up the new file if os.path.exists(new_file_abs_path): diff --git a/test/solidlsp/csharp/test_csharp_basic.py b/test/solidlsp/csharp/test_csharp_basic.py index 01e19da6..3d538061 100644 --- a/test/solidlsp/csharp/test_csharp_basic.py +++ b/test/solidlsp/csharp/test_csharp_basic.py @@ -63,9 +63,9 @@ class TestCSharpLanguageServer: assert add_symbol is not None, "Could not find 'Add' method symbol in Program.cs" sel_start = add_symbol["selectionRange"]["start"] refs = language_server.request_references(file_path, sel_start["line"], sel_start["character"] + 1) - assert any( - "Program.cs" in ref.get("relativePath", "") for ref in refs - ), "Program.cs should reference Add method (tried all positions in selectionRange)" + assert any("Program.cs" in ref.get("relativePath", "") for ref in refs), ( + "Program.cs should reference Add method (tried all positions in selectionRange)" + ) @pytest.mark.parametrize("language_server", [Language.CSHARP], indirect=True) def test_nested_namespace_symbols(self, language_server: SolidLanguageServer) -> None: @@ -121,9 +121,9 @@ class TestCSharpLanguageServer: # Check that we have reference in Models/Person.cs where Calculator.Subtract is called # Note: New Roslyn version doesn't include the definition itself as a reference (more correct behavior) - assert any( - os.path.join("Models", "Person.cs") in ref_file for ref_file in ref_files - ), "Should find reference in Models/Person.cs where Calculator.Subtract is called" + assert any(os.path.join("Models", "Person.cs") in ref_file for ref_file in ref_files), ( + "Should find reference in Models/Person.cs where Calculator.Subtract is called" + ) assert len(refs) > 0, "Should find at least one reference" # check for a second time, since the first call may trigger initialization and change the state of the LS diff --git a/test/solidlsp/csharp/test_csharp_nuget_download.py b/test/solidlsp/csharp/test_csharp_nuget_download.py index 4f9a007c..09b7eaed 100644 --- a/test/solidlsp/csharp/test_csharp_nuget_download.py +++ b/test/solidlsp/csharp/test_csharp_nuget_download.py @@ -69,9 +69,9 @@ class TestNuGetOrgDownload: for dep in lang_server_deps: # Verify package name uses roslyn-language-server assert dep.package_name is not None, f"Package name should be set for {dep.platform_id}" - assert dep.package_name.startswith( - "roslyn-language-server." - ), f"Package name should start with 'roslyn-language-server.' but got: {dep.package_name}" + assert dep.package_name.startswith("roslyn-language-server."), ( + f"Package name should start with 'roslyn-language-server.' but got: {dep.package_name}" + ) # Verify version is the newer NuGet.org version assert dep.package_version == "5.5.0-2.26078.4", f"Should use NuGet.org version 5.5.0-2.26078.4, got: {dep.package_version}" diff --git a/test/solidlsp/dart/test_dart_basic.py b/test/solidlsp/dart/test_dart_basic.py index f469e8cf..450f99c4 100644 --- a/test/solidlsp/dart/test_dart_basic.py +++ b/test/solidlsp/dart/test_dart_basic.py @@ -196,9 +196,9 @@ class TestDartLanguageServer: refs = language_server.request_references(file_path, sel_start["line"], sel_start["character"]) # Check that we found references - at least one should be in main.dart - assert any( - "main.dart" in ref.get("relativePath", "") or "main.dart" in ref.get("uri", "") for ref in refs - ), "main.dart should reference add method (tried all positions in selectionRange)" + assert any("main.dart" in ref.get("relativePath", "") or "main.dart" in ref.get("uri", "") for ref in refs), ( + "main.dart should reference add method (tried all positions in selectionRange)" + ) @pytest.mark.parametrize("language_server", [Language.DART], indirect=True) def test_request_containing_symbol_method(self, language_server: SolidLanguageServer) -> None: diff --git a/test/solidlsp/elixir/test_elixir_ignored_dirs.py b/test/solidlsp/elixir/test_elixir_ignored_dirs.py index d74c58d2..b01531ba 100644 --- a/test/solidlsp/elixir/test_elixir_ignored_dirs.py +++ b/test/solidlsp/elixir/test_elixir_ignored_dirs.py @@ -92,7 +92,6 @@ def test_refs_and_symbols_with_glob_patterns(repo_path: Path) -> None: """ ignored_paths = ["*cripts", "ignored_*"] # codespell:ignore cripts with start_ls_context(language=Language.ELIXIR, repo_path=str(repo_path), ignored_paths=ignored_paths) as ls: - # Same as in the above tests root = ls.request_full_symbol_tree()[0] root_children = root["children"] diff --git a/test/solidlsp/erlang/test_erlang_symbol_retrieval.py b/test/solidlsp/erlang/test_erlang_symbol_retrieval.py index d63c0206..b2f9fce4 100644 --- a/test/solidlsp/erlang/test_erlang_symbol_retrieval.py +++ b/test/solidlsp/erlang/test_erlang_symbol_retrieval.py @@ -308,8 +308,7 @@ class TestErlangLanguageServerSymbols: @pytest.mark.timeout(60) # Add 60 second timeout @pytest.mark.xfail( - reason="Known intermittent timeout issue in Erlang LS in CI environments. " - "May pass locally but can timeout on slower CI systems.", + reason="Known intermittent timeout issue in Erlang LS in CI environments. May pass locally but can timeout on slower CI systems.", strict=False, ) @pytest.mark.parametrize("language_server", [Language.ERLANG], indirect=True) diff --git a/test/solidlsp/fortran/test_fortran_basic.py b/test/solidlsp/fortran/test_fortran_basic.py index e4ea280d..1554e959 100644 --- a/test/solidlsp/fortran/test_fortran_basic.py +++ b/test/solidlsp/fortran/test_fortran_basic.py @@ -83,9 +83,9 @@ class TestFortranLanguageServer: # Verify that main.f90 references the function main_refs = [ref for ref in refs if "main.f90" in ref.get("relativePath", "")] - assert ( - len(main_refs) > 0 - ), f"Expected to find reference in main.f90, but found references in: {[ref.get('relativePath') for ref in refs]}" + assert len(main_refs) > 0, ( + f"Expected to find reference in main.f90, but found references in: {[ref.get('relativePath') for ref in refs]}" + ) @pytest.mark.parametrize("language_server", [Language.FORTRAN], indirect=True) def test_find_definition_cross_file(self, language_server: SolidLanguageServer) -> None: @@ -104,14 +104,14 @@ class TestFortranLanguageServer: definition_location = definition_location_list[0] # The definition should be in modules/math_utils.f90 - assert "math_utils.f90" in definition_location.get( - "uri", "" - ), f"Expected definition to be in math_utils.f90, but found in: {definition_location.get('uri')}" + assert "math_utils.f90" in definition_location.get("uri", ""), ( + f"Expected definition to be in math_utils.f90, but found in: {definition_location.get('uri')}" + ) # Verify the definition is around the correct line (line 4, 0-indexed) - assert ( - definition_location["range"]["start"]["line"] == 4 - ), f"Expected definition at line 4, but found at line {definition_location['range']['start']['line']}" + assert definition_location["range"]["start"]["line"] == 4, ( + f"Expected definition at line 4, but found at line {definition_location['range']['start']['line']}" + ) @pytest.mark.parametrize("language_server", [Language.FORTRAN], indirect=True) def test_request_referencing_symbols(self, language_server: SolidLanguageServer) -> None: @@ -202,14 +202,14 @@ class TestFortranLanguageServer: pytest.skip("fortls does not support request_containing_symbol or couldn't find the containing symbol") # Should find the add_numbers function as the containing symbol - assert ( - containing_symbol.get("name") == "add_numbers" - ), f"Expected containing symbol 'add_numbers', got '{containing_symbol.get('name')}'" + assert containing_symbol.get("name") == "add_numbers", ( + f"Expected containing symbol 'add_numbers', got '{containing_symbol.get('name')}'" + ) # Verify the symbol kind is Function - assert ( - containing_symbol.get("kind") == SymbolKind.Function.value - ), f"Expected Function kind ({SymbolKind.Function.value}), got {containing_symbol.get('kind')}" + assert containing_symbol.get("kind") == SymbolKind.Function.value, ( + f"Expected Function kind ({SymbolKind.Function.value}), got {containing_symbol.get('kind')}" + ) # Verify location information exists assert "location" in containing_symbol, "Containing symbol should have location information" @@ -264,9 +264,9 @@ class TestFortranLanguageServer: # Verify selectionRange points to identifier name, not line start # Line for "type, extends(Point2D) :: Point3D" has Point3D at position > 0 - assert ( - sel_start["character"] > 0 - ), f"selectionRange should point to identifier, not line start. Got character: {sel_start['character']}" + assert sel_start["character"] > 0, ( + f"selectionRange should point to identifier, not line start. Got character: {sel_start['character']}" + ) # Test that we can find references using the corrected position _refs = language_server.request_references(file_path, sel_start["line"], sel_start["character"]) diff --git a/test/solidlsp/go/test_go_basic.py b/test/solidlsp/go/test_go_basic.py index cd7e8a86..8d83298c 100644 --- a/test/solidlsp/go/test_go_basic.py +++ b/test/solidlsp/go/test_go_basic.py @@ -154,9 +154,9 @@ class TestGoBuildTags: assert versioned_cache_files, f"Expected at least one SolidLSP cache file with a __cache_version under {cache_dir}" saved_versions = {v for _, v in versioned_cache_files} - assert ( - default_raw_cache_version in saved_versions or default_doc_cache_version in saved_versions - ), "Expected at least one persisted cache to match the default-context cache version" + assert default_raw_cache_version in saved_versions or default_doc_cache_version in saved_versions, ( + "Expected at least one persisted cache to match the default-context cache version" + ) # Run 2 (default context again): prove that persisted caches are actually loaded and used. with start_ls_context(Language.GO, repo_path=str(repo_path), solidlsp_dir=tmp_path) as ls_default_again: diff --git a/test/solidlsp/haskell/test_haskell_basic.py b/test/solidlsp/haskell/test_haskell_basic.py index 97820643..b080a306 100644 --- a/test/solidlsp/haskell/test_haskell_basic.py +++ b/test/solidlsp/haskell/test_haskell_basic.py @@ -145,9 +145,9 @@ class TestHaskellLanguageServer: # All references should be in Helper.hs reference_paths = [ref["relativePath"] for ref in references] - assert all( - "Helper.hs" in path for path in reference_paths - ), f"All isNegative references should be in Helper.hs, got: {reference_paths}" + assert all("Helper.hs" in path for path in reference_paths), ( + f"All isNegative references should be in Helper.hs, got: {reference_paths}" + ) @pytest.mark.parametrize("language_server", [Language.HASKELL], indirect=True) def test_function_references_from_main(self, language_server: SolidLanguageServer): @@ -168,9 +168,9 @@ class TestHaskellLanguageServer: add_ref_paths = [ref["relativePath"] for ref in add_refs] # Should have at least one reference in Main.hs or Calculator.hs - assert any( - "Main.hs" in path or "Calculator.hs" in path for path in add_ref_paths - ), f"Expected 'add' to be referenced in Main.hs or Calculator.hs, got: {add_ref_paths}" + assert any("Main.hs" in path or "Calculator.hs" in path for path in add_ref_paths), ( + f"Expected 'add' to be referenced in Main.hs or Calculator.hs, got: {add_ref_paths}" + ) @pytest.mark.parametrize("language_server", [Language.HASKELL], indirect=True) def test_multiply_function_usage_in_calculate(self, language_server: SolidLanguageServer): @@ -191,9 +191,9 @@ class TestHaskellLanguageServer: # Should have reference in Calculator.hs (calculate function) multiply_ref_paths = [ref["relativePath"] for ref in multiply_refs] - assert any( - "Calculator.hs" in path for path in multiply_ref_paths - ), f"Expected 'multiply' to be referenced in Calculator.hs, got: {multiply_ref_paths}" + assert any("Calculator.hs" in path for path in multiply_ref_paths), ( + f"Expected 'multiply' to be referenced in Calculator.hs, got: {multiply_ref_paths}" + ) @pytest.mark.parametrize("language_server", [Language.HASKELL], indirect=True) def test_data_type_constructor_references(self, language_server: SolidLanguageServer): @@ -214,6 +214,6 @@ class TestHaskellLanguageServer: # Should have at least one reference in Main.hs or Calculator.hs calc_ref_paths = [ref["relativePath"] for ref in calculator_refs] - assert any( - "Main.hs" in path or "Calculator.hs" in path for path in calc_ref_paths - ), f"Expected Calculator to be referenced in Main.hs or Calculator.hs, got: {calc_ref_paths}" + assert any("Main.hs" in path or "Calculator.hs" in path for path in calc_ref_paths), ( + f"Expected Calculator to be referenced in Main.hs or Calculator.hs, got: {calc_ref_paths}" + ) diff --git a/test/solidlsp/hlsl/test_hlsl_full_index.py b/test/solidlsp/hlsl/test_hlsl_full_index.py index 89b156d4..70df1a61 100644 --- a/test/solidlsp/hlsl/test_hlsl_full_index.py +++ b/test/solidlsp/hlsl/test_hlsl_full_index.py @@ -49,9 +49,9 @@ class TestHlslFullIndex: """Symbols unique to terrain/terrain_sdf.hlsl must appear in the full tree.""" symbols = language_server.request_full_symbol_tree() for name in TERRAIN_SDF_UNIQUE_SYMBOLS: - assert SymbolUtils.symbol_tree_contains_name( - symbols, name - ), f"Expected '{name}' from terrain/terrain_sdf.hlsl in full symbol tree" + assert SymbolUtils.symbol_tree_contains_name(symbols, name), ( + f"Expected '{name}' from terrain/terrain_sdf.hlsl in full symbol tree" + ) @pytest.mark.parametrize("language_server", [Language.HLSL], indirect=True) def test_include_file_document_symbols_directly(self, language_server: SolidLanguageServer) -> None: diff --git a/test/solidlsp/java/test_java_basic.py b/test/solidlsp/java/test_java_basic.py index 57642bbe..0810dac2 100644 --- a/test/solidlsp/java/test_java_basic.py +++ b/test/solidlsp/java/test_java_basic.py @@ -40,9 +40,9 @@ class TestJavaLanguageServer: else: sel_start = model_symbol["range"]["start"] refs = language_server.request_references(file_path, sel_start["line"], sel_start["character"]) - assert any( - "Main.java" in ref.get("relativePath", "") for ref in refs - ), "Main should reference Model (tried all positions in selectionRange)" + assert any("Main.java" in ref.get("relativePath", "") for ref in refs), ( + "Main should reference Model (tried all positions in selectionRange)" + ) @pytest.mark.parametrize("language_server", [Language.JAVA], indirect=True) def test_overview_methods(self, language_server: SolidLanguageServer) -> None: diff --git a/test/solidlsp/kotlin/test_kotlin_basic.py b/test/solidlsp/kotlin/test_kotlin_basic.py index f6a135d8..762c391c 100644 --- a/test/solidlsp/kotlin/test_kotlin_basic.py +++ b/test/solidlsp/kotlin/test_kotlin_basic.py @@ -45,9 +45,9 @@ class TestKotlinLanguageServer: else: sel_start = model_symbol["range"]["start"] refs = language_server.request_references(file_path, sel_start["line"], sel_start["character"]) - assert any( - "Main.kt" in ref.get("relativePath", "") for ref in refs - ), "Main should reference Model (tried all positions in selectionRange)" + assert any("Main.kt" in ref.get("relativePath", "") for ref in refs), ( + "Main should reference Model (tried all positions in selectionRange)" + ) @pytest.mark.parametrize("language_server", [Language.KOTLIN], indirect=True) def test_overview_methods(self, language_server: SolidLanguageServer) -> None: diff --git a/test/solidlsp/lean4/test_lean4_basic.py b/test/solidlsp/lean4/test_lean4_basic.py index 5ec40572..b8f35efa 100644 --- a/test/solidlsp/lean4/test_lean4_basic.py +++ b/test/solidlsp/lean4/test_lean4_basic.py @@ -82,9 +82,9 @@ class TestLean4LanguageServer: # Check that isPositive is referenced within Helper.lean at line 15 (absolute calls isPositive) ref_locations = [(ref["relativePath"], ref["range"]["start"]["line"]) for ref in references] helper_refs = [(path, line) for path, line in ref_locations if "Helper.lean" in path] - assert any( - line == 15 for _, line in helper_refs - ), f"Expected isPositive reference at Helper.lean:15 (in absolute), got: {ref_locations}" + assert any(line == 15 for _, line in helper_refs), ( + f"Expected isPositive reference at Helper.lean:15 (in absolute), got: {ref_locations}" + ) @pytest.mark.parametrize("language_server", [Language.LEAN4], indirect=True) def test_cross_file_references_add(self, language_server: SolidLanguageServer) -> None: @@ -104,9 +104,9 @@ class TestLean4LanguageServer: assert len(main_refs) >= 1, f"Expected at least 1 reference to add in Main.lean, got: {ref_locations}" main_ref_lines = {line for _, line in main_refs} # add is used in Main.lean line 7 (in calculate) and line 15 (in main) - assert ( - 7 in main_ref_lines or 15 in main_ref_lines - ), f"Expected add references at Main.lean lines 7 or 15, got lines: {main_ref_lines}" + assert 7 in main_ref_lines or 15 in main_ref_lines, ( + f"Expected add references at Main.lean lines 7 or 15, got lines: {main_ref_lines}" + ) @pytest.mark.parametrize("language_server", [Language.LEAN4], indirect=True) def test_cross_file_references_calculator(self, language_server: SolidLanguageServer) -> None: @@ -125,9 +125,9 @@ class TestLean4LanguageServer: assert len(main_refs) >= 1, f"Expected at least 1 reference to Calculator in Main.lean, got: {ref_locations}" main_ref_lines = {line for _, line in main_refs} # Calculator is used in Main.lean line 5 (calculate signature) and line 13 (let c : Calculator) - assert ( - 5 in main_ref_lines or 13 in main_ref_lines - ), f"Expected Calculator references at Main.lean lines 5 or 13, got lines: {main_ref_lines}" + assert 5 in main_ref_lines or 13 in main_ref_lines, ( + f"Expected Calculator references at Main.lean lines 5 or 13, got lines: {main_ref_lines}" + ) @pytest.mark.parametrize("language_server", [Language.LEAN4], indirect=True) def test_go_to_definition_within_file(self, language_server: SolidLanguageServer) -> None: diff --git a/test/solidlsp/lua/test_lua_basic.py b/test/solidlsp/lua/test_lua_basic.py index 633e3c45..ab58ec5e 100644 --- a/test/solidlsp/lua/test_lua_basic.py +++ b/test/solidlsp/lua/test_lua_basic.py @@ -146,15 +146,15 @@ class TestLuaLanguageServer: # The declaration may or may not be included if "calculator.lua" in ref_files: - assert ( - 5 in ref_files["calculator.lua"] - ), f"If declaration is included, it should be at line 6 (0-indexed: 5), found at {ref_files['calculator.lua']}" + assert 5 in ref_files["calculator.lua"], ( + f"If declaration is included, it should be at line 6 (0-indexed: 5), found at {ref_files['calculator.lua']}" + ) # Check main.lua has usages assert "main.lua" in ref_files, "Should find add usages in main.lua" - assert ( - 15 in ref_files["main.lua"] or 70 in ref_files["main.lua"] - ), f"Should find add usage in main.lua, found at lines {ref_files.get('main.lua', [])}" + assert 15 in ref_files["main.lua"] or 70 in ref_files["main.lua"], ( + f"Should find add usage in main.lua, found at lines {ref_files.get('main.lua', [])}" + ) # Check for cross-file references from main.lua main_refs = [ref for ref in refs if "main.lua" in ref.get("uri", "")] @@ -202,15 +202,15 @@ class TestLuaLanguageServer: # The declaration may or may not be included if "utils.lua" in ref_files: - assert ( - 5 in ref_files["utils.lua"] - ), f"If declaration is included, it should be at line 6 (0-indexed: 5), found at {ref_files['utils.lua']}" + assert 5 in ref_files["utils.lua"], ( + f"If declaration is included, it should be at line 6 (0-indexed: 5), found at {ref_files['utils.lua']}" + ) # Check main.lua has usage assert "main.lua" in ref_files, "Should find trim usage in main.lua" - assert ( - 31 in ref_files["main.lua"] - ), f"Should find trim usage at line 32 (0-indexed: 31) in main.lua, found at lines {ref_files.get('main.lua', [])}" + assert 31 in ref_files["main.lua"], ( + f"Should find trim usage at line 32 (0-indexed: 31) in main.lua, found at lines {ref_files.get('main.lua', [])}" + ) # Check for cross-file references from main.lua main_refs = [ref for ref in refs if "main.lua" in ref.get("uri", "")] diff --git a/test/solidlsp/markdown/test_markdown_basic.py b/test/solidlsp/markdown/test_markdown_basic.py index e8f96c5a..5a3c65f8 100644 --- a/test/solidlsp/markdown/test_markdown_basic.py +++ b/test/solidlsp/markdown/test_markdown_basic.py @@ -35,9 +35,9 @@ class TestMarkdownLanguageServerBasics: # Verify that markdown headings are remapped from String to Namespace for symbol in all_symbols: - assert ( - symbol["kind"] == SymbolKind.Namespace - ), f"Heading '{symbol['name']}' should have kind Namespace, got {SymbolKind(symbol['kind']).name}" + assert symbol["kind"] == SymbolKind.Namespace, ( + f"Heading '{symbol['name']}' should have kind Namespace, got {SymbolKind(symbol['kind']).name}" + ) @pytest.mark.parametrize("language_server", [Language.MARKDOWN], indirect=True) def test_markdown_request_symbols_from_guide(self, language_server: SolidLanguageServer) -> None: @@ -79,9 +79,9 @@ class TestMarkdownLanguageServerBasics: for symbol in all_symbols: ls_symbol = LanguageServerSymbol(symbol) - assert ( - not ls_symbol.is_low_level() - ), f"Heading '{symbol['name']}' should not be low-level (kind={SymbolKind(symbol['kind']).name})" + assert not ls_symbol.is_low_level(), ( + f"Heading '{symbol['name']}' should not be low-level (kind={SymbolKind(symbol['kind']).name})" + ) @pytest.mark.parametrize("language_server", [Language.MARKDOWN], indirect=True) def test_markdown_nested_headings_remapped(self, language_server: SolidLanguageServer) -> None: diff --git a/test/solidlsp/nix/test_nix_basic.py b/test/solidlsp/nix/test_nix_basic.py index 92024104..42d4d414 100644 --- a/test/solidlsp/nix/test_nix_basic.py +++ b/test/solidlsp/nix/test_nix_basic.py @@ -114,7 +114,7 @@ class TestNixLanguageServer: if refs: ref_lines = sorted([ref["range"]["start"]["line"] for ref in refs]) # Check if we found the inherit (line 67, 0-indexed: 66) - assert 66 in ref_lines, f"Should find makeGreeting inherit at line 67, found at lines {[l+1 for l in ref_lines]}" + assert 66 in ref_lines, f"Should find makeGreeting inherit at line 67, found at lines {[l + 1 for l in ref_lines]}" @pytest.mark.xfail(is_ci, reason="Test is flaky") # TODO: Re-enable if the hover test becomes more stable (#1040) @pytest.mark.parametrize("language_server", [Language.NIX], indirect=True) @@ -148,9 +148,9 @@ class TestNixLanguageServer: if default_refs: ref_lines = sorted([ref["range"]["start"]["line"] for ref in default_refs]) # Check for key references - at least the import (line 10) or usage (line 24) - assert ( - 9 in ref_lines or 23 in ref_lines - ), f"Should find utils import or usage, found references at lines {[l+1 for l in ref_lines]}" + assert 9 in ref_lines or 23 in ref_lines, ( + f"Should find utils import or usage, found references at lines {[l + 1 for l in ref_lines]}" + ) @pytest.mark.parametrize("language_server", [Language.NIX], indirect=True) def test_verify_imports_exist(self, language_server: SolidLanguageServer) -> None: @@ -187,9 +187,9 @@ class TestNixLanguageServer: if len(definitions) > 0: # Should point to the import statement or utils.nix - assert any( - "utils" in def_item.get("uri", "") or "default.nix" in def_item.get("uri", "") for def_item in definitions - ), "Definition should relate to utils import or utils.nix file" + assert any("utils" in def_item.get("uri", "") or "default.nix" in def_item.get("uri", "") for def_item in definitions), ( + "Definition should relate to utils import or utils.nix file" + ) @pytest.mark.parametrize("language_server", [Language.NIX], indirect=True) def test_definition_navigation_in_flake(self, language_server: SolidLanguageServer) -> None: @@ -202,9 +202,9 @@ class TestNixLanguageServer: assert isinstance(definitions, list) # nixd should find the definition of hello-custom in the same file if len(definitions) > 0: - assert any( - "flake.nix" in def_item.get("uri", "") for def_item in definitions - ), "Should find hello-custom definition in flake.nix" + assert any("flake.nix" in def_item.get("uri", "") for def_item in definitions), ( + "Should find hello-custom definition in flake.nix" + ) @pytest.mark.parametrize("language_server", [Language.NIX], indirect=True) def test_full_symbol_tree(self, language_server: SolidLanguageServer) -> None: diff --git a/test/solidlsp/ocaml/test_ocaml_basic.py b/test/solidlsp/ocaml/test_ocaml_basic.py index a9850f14..82af5fa9 100644 --- a/test/solidlsp/ocaml/test_ocaml_basic.py +++ b/test/solidlsp/ocaml/test_ocaml_basic.py @@ -120,9 +120,9 @@ class TestOCamlLanguageServer: # Should find at least 3 references in test_repo.ml: definition + 2 recursive calls # On OCaml 5.2+ with cross-file refs, there may be more total refs but same-file count stays the same - assert ( - len(same_file_refs) >= 3 - ), f"Expected at least 3 references in test_repo.ml (definition + 2 recursive), found {len(same_file_refs)}" + assert len(same_file_refs) >= 3, ( + f"Expected at least 3 references in test_repo.ml (definition + 2 recursive), found {len(same_file_refs)}" + ) # Verify references are on different lines (definition + recursive calls) ref_lines = [ref.get("range", {}).get("start", {}).get("line", -1) for ref in same_file_refs] diff --git a/test/solidlsp/php/test_php_basic.py b/test/solidlsp/php/test_php_basic.py index 78a23a3d..bc59d471 100644 --- a/test/solidlsp/php/test_php_basic.py +++ b/test/solidlsp/php/test_php_basic.py @@ -225,9 +225,9 @@ class TestPhpLanguageServers: assert dog_symbol is not None, "Dog class not found in root symbols" dog_children = dog_symbol.get("children", []) dog_child_names = [c.get("name") for c in dog_children] - assert ( - len(dog_child_names) > 0 - ), f"Dog class has no children — hierarchicalDocumentSymbolSupport is not working. All root symbols: {root_names}" + assert len(dog_child_names) > 0, ( + f"Dog class has no children — hierarchicalDocumentSymbolSupport is not working. All root symbols: {root_names}" + ) expected_methods = {"greet", "fetch", "getBreed", "describe"} missing = expected_methods - set(dog_child_names) assert not missing, f"Dog class missing expected methods: {missing}. Children found: {dog_child_names}" diff --git a/test/solidlsp/powershell/test_powershell_basic.py b/test/solidlsp/powershell/test_powershell_basic.py index 0d8a7349..3d6ef7a1 100644 --- a/test/solidlsp/powershell/test_powershell_basic.py +++ b/test/solidlsp/powershell/test_powershell_basic.py @@ -149,9 +149,9 @@ class TestPowerShellLanguageServerBasics: # Should find at least the call site in Main function assert refs is not None and len(refs) >= 1, f"Should find references to Greet-User, got {refs}" - assert any( - "main.ps1" in ref.get("uri", ref.get("relativePath", "")) for ref in refs - ), f"Should find reference in main.ps1, got {refs}" + assert any("main.ps1" in ref.get("uri", ref.get("relativePath", "")) for ref in refs), ( + f"Should find reference in main.ps1, got {refs}" + ) @pytest.mark.parametrize("language_server", [Language.POWERSHELL], indirect=True) def test_powershell_find_definition_across_files(self, language_server: SolidLanguageServer) -> None: @@ -166,9 +166,9 @@ class TestPowerShellLanguageServerBasics: definition_locations = language_server.request_definition(main_path, 98, 18) # Should find the definition in utils.ps1 - assert ( - definition_locations is not None and len(definition_locations) >= 1 - ), f"Should find definition of Convert-ToUpperCase, got {definition_locations}" - assert any( - "utils.ps1" in loc.get("uri", "") for loc in definition_locations - ), f"Should find definition in utils.ps1, got {definition_locations}" + assert definition_locations is not None and len(definition_locations) >= 1, ( + f"Should find definition of Convert-ToUpperCase, got {definition_locations}" + ) + assert any("utils.ps1" in loc.get("uri", "") for loc in definition_locations), ( + f"Should find definition in utils.ps1, got {definition_locations}" + ) diff --git a/test/solidlsp/r/test_r_basic.py b/test/solidlsp/r/test_r_basic.py index 3ce63a0b..647ff6c1 100644 --- a/test/solidlsp/r/test_r_basic.py +++ b/test/solidlsp/r/test_r_basic.py @@ -76,9 +76,9 @@ class TestRLanguageServer: assert len(utils_refs) >= 1, "Should find at least one reference in utils.R" utils_ref = utils_refs[0] # Should be around line 6 where calculate_mean is defined (0-indexed: line 5) - assert ( - utils_ref["range"]["start"]["line"] == 5 - ), f"Expected reference at line 5 in utils.R, got line {utils_ref['range']['start']['line']}" + assert utils_ref["range"]["start"]["line"] == 5, ( + f"Expected reference at line 5 in utils.R, got line {utils_ref['range']['start']['line']}" + ) def test_file_matching(self): """Test that R files are properly matched.""" diff --git a/test/solidlsp/rego/test_rego_basic.py b/test/solidlsp/rego/test_rego_basic.py index 4da3efcd..79155a0c 100644 --- a/test/solidlsp/rego/test_rego_basic.py +++ b/test/solidlsp/rego/test_rego_basic.py @@ -111,9 +111,9 @@ class TestRegoLanguageServer: assert definitions is not None and len(definitions) > 0, "Should find cross-file definition for is_valid_user" # Verify the definition points to helpers.rego (cross-file) - assert any( - "helpers.rego" in defn.get("relativePath", "") for defn in definitions - ), "Definition should be in utils/helpers.rego (cross-file reference)" + assert any("helpers.rego" in defn.get("relativePath", "") for defn in definitions), ( + "Definition should be in utils/helpers.rego (cross-file reference)" + ) @pytest.mark.parametrize("language_server", [Language.REGO], indirect=True) def test_find_symbols_validation(self, language_server: SolidLanguageServer) -> None: diff --git a/test/solidlsp/ruby/test_ruby_symbol_retrieval.py b/test/solidlsp/ruby/test_ruby_symbol_retrieval.py index 55efcf02..5d969094 100644 --- a/test/solidlsp/ruby/test_ruby_symbol_retrieval.py +++ b/test/solidlsp/ruby/test_ruby_symbol_retrieval.py @@ -33,9 +33,9 @@ class TestRubyLanguageServerSymbols: # Verify that we found the containing symbol assert containing_symbol is not None, "Should find containing symbol for method position" assert containing_symbol["name"] == "create_user", f"Expected 'create_user', got '{containing_symbol['name']}'" - assert ( - containing_symbol["kind"] == SymbolKind.Method.value - ), f"Expected Method kind ({SymbolKind.Method.value}), got {containing_symbol['kind']}" + assert containing_symbol["kind"] == SymbolKind.Method.value, ( + f"Expected Method kind ({SymbolKind.Method.value}), got {containing_symbol['kind']}" + ) # Verify location information assert "location" in containing_symbol, "Containing symbol should have location information" @@ -68,9 +68,9 @@ class TestRubyLanguageServerSymbols: # Verify that we found the containing symbol assert containing_symbol is not None, "Should find containing symbol for class position" assert containing_symbol["name"] == "UserService", f"Expected 'UserService', got '{containing_symbol['name']}'" - assert ( - containing_symbol["kind"] == SymbolKind.Class.value - ), f"Expected Class kind ({SymbolKind.Class.value}), got {containing_symbol['kind']}" + assert containing_symbol["kind"] == SymbolKind.Class.value, ( + f"Expected Class kind ({SymbolKind.Class.value}), got {containing_symbol['kind']}" + ) # Verify location information exists assert "location" in containing_symbol, "Class symbol should have location information" @@ -80,9 +80,9 @@ class TestRubyLanguageServerSymbols: # Verify the class is properly nested in the Services module if "containerName" in containing_symbol: - assert ( - containing_symbol["containerName"] == "Services" - ), f"Expected 'Services' as container, got '{containing_symbol['containerName']}'" + assert containing_symbol["containerName"] == "Services", ( + f"Expected 'Services' as container, got '{containing_symbol['containerName']}'" + ) @pytest.mark.parametrize("language_server", [Language.RUBY], indirect=True) def test_request_containing_symbol_module(self, language_server: SolidLanguageServer) -> None: @@ -411,9 +411,9 @@ class TestRubyLanguageServerSymbols: except Exception as e: # Some language servers throw exceptions for invalid positions, which is acceptable - assert ( - "symbol" in str(e).lower() or "position" in str(e).lower() or "reference" in str(e).lower() - ), f"Exception should be related to symbol/position/reference issues, got: {e}" + assert "symbol" in str(e).lower() or "position" in str(e).lower() or "reference" in str(e).lower(), ( + f"Exception should be related to symbol/position/reference issues, got: {e}" + ) @pytest.mark.parametrize("language_server", [Language.RUBY], indirect=True) def test_request_dir_overview(self, language_server: SolidLanguageServer) -> None: @@ -492,9 +492,9 @@ class TestRubyLanguageServerSymbols: assert "kind" in containing_symbol, "Containing symbol should have a kind" # The containing symbol should be a method, class, or similar construct expected_kinds = [SymbolKind.Method, SymbolKind.Class, SymbolKind.Function, SymbolKind.Constructor] - assert containing_symbol["kind"] in [ - k.value for k in expected_kinds - ], f"Expected containing symbol to be method/class/function, got kind: {containing_symbol['kind']}" + assert containing_symbol["kind"] in [k.value for k in expected_kinds], ( + f"Expected containing symbol to be method/class/function, got kind: {containing_symbol['kind']}" + ) @pytest.mark.parametrize("language_server", [Language.RUBY], indirect=True) def test_request_containing_symbol_function(self, language_server: SolidLanguageServer) -> None: @@ -553,9 +553,9 @@ class TestRubyLanguageServerSymbols: child_names = [c.get("name") for c in child["children"]] expected_names = ["UserStats", "UserManager", "process_user_data"] found_expected = [name for name in expected_names if name in child_names] - assert ( - len(found_expected) > 0 - ), f"Should find symbols in user_management, expected {expected_names}, found {child_names}" + assert len(found_expected) > 0, ( + f"Should find symbols in user_management, expected {expected_names}, found {child_names}" + ) break if not found_user_management: diff --git a/test/solidlsp/rust/test_rust_basic.py b/test/solidlsp/rust/test_rust_basic.py index c827d4b2..8d84d736 100644 --- a/test/solidlsp/rust/test_rust_basic.py +++ b/test/solidlsp/rust/test_rust_basic.py @@ -22,9 +22,9 @@ class TestRustLanguageServer: assert add_symbol is not None, "Could not find 'add' function symbol in lib.rs" sel_start = add_symbol["selectionRange"]["start"] refs = language_server.request_references(file_path, sel_start["line"], sel_start["character"]) - assert any( - "main.rs" in ref.get("relativePath", "") for ref in refs - ), "main.rs should reference add (raw, tried all positions in selectionRange)" + assert any("main.rs" in ref.get("relativePath", "") for ref in refs), ( + "main.rs should reference add (raw, tried all positions in selectionRange)" + ) @pytest.mark.parametrize("language_server", [Language.RUST], indirect=True) def test_find_symbol(self, language_server: SolidLanguageServer) -> None: @@ -46,9 +46,9 @@ class TestRustLanguageServer: assert add_symbol is not None, "Could not find 'add' function symbol in lib.rs" sel_start = add_symbol["selectionRange"]["start"] refs = language_server.request_references(file_path, sel_start["line"], sel_start["character"]) - assert any( - "main.rs" in ref.get("relativePath", "") for ref in refs - ), "main.rs should reference add (tried all positions in selectionRange)" + assert any("main.rs" in ref.get("relativePath", "") for ref in refs), ( + "main.rs should reference add (tried all positions in selectionRange)" + ) @pytest.mark.parametrize("language_server", [Language.RUST], indirect=True) def test_overview_methods(self, language_server: SolidLanguageServer) -> None: diff --git a/test/solidlsp/solidity/test_solidity_basic.py b/test/solidlsp/solidity/test_solidity_basic.py index 8c52c38b..348c460b 100644 --- a/test/solidlsp/solidity/test_solidity_basic.py +++ b/test/solidlsp/solidity/test_solidity_basic.py @@ -139,9 +139,9 @@ class TestSolidityLanguageServerBasics: references = language_server.request_references("contracts/Token.sol", definition_line, definition_char) assert references is not None, "Should return references for '_transfer'" - assert ( - len(references) >= 2 - ), f"'_transfer' should have at least 2 references (callers), found {len(references)}" # called in transfer() and transferFrom() + assert len(references) >= 2, ( + f"'_transfer' should have at least 2 references (callers), found {len(references)}" + ) # called in transfer() and transferFrom() ref_files = {ref.get("uri", "") for ref in references} assert any("Token.sol" in uri for uri in ref_files), "References should include Token.sol" diff --git a/test/solidlsp/systemverilog/test_systemverilog_basic.py b/test/solidlsp/systemverilog/test_systemverilog_basic.py index edd72d2f..b3a8a4c5 100644 --- a/test/solidlsp/systemverilog/test_systemverilog_basic.py +++ b/test/solidlsp/systemverilog/test_systemverilog_basic.py @@ -69,9 +69,9 @@ class TestSystemVerilogDefinition: assert len(definitions) >= 1, f"Expected at least 1 definition, got {len(definitions)}" def_in_counter = [d for d in definitions if "counter.sv" in (d.get("relativePath") or "")] assert len(def_in_counter) >= 1, f"Expected definition in counter.sv, got: {[d.get('relativePath') for d in definitions]}" - assert ( - def_in_counter[0]["range"]["start"]["line"] == 7 - ), f"Expected definition at line 7 (output port count), got line {def_in_counter[0]['range']['start']['line']}" + assert def_in_counter[0]["range"]["start"]["line"] == 7, ( + f"Expected definition at line 7 (output port count), got line {def_in_counter[0]['range']['start']['line']}" + ) @pytest.mark.parametrize("language_server", [Language.SYSTEMVERILOG], indirect=True) def test_goto_definition_cross_file(self, language_server: SolidLanguageServer) -> None: @@ -87,9 +87,9 @@ class TestSystemVerilogDefinition: def_paths = [d.get("relativePath", "") for d in definitions] assert any("counter.sv" in p for p in def_paths), f"Expected definition in counter.sv, got: {def_paths}" counter_defs = [d for d in definitions if "counter.sv" in (d.get("relativePath") or "")] - assert ( - counter_defs[0]["range"]["start"]["line"] == 1 - ), f"Expected definition at line 1 (module counter), got line {counter_defs[0]['range']['start']['line']}" + assert counter_defs[0]["range"]["start"]["line"] == 1, ( + f"Expected definition at line 1 (module counter), got line {counter_defs[0]['range']['start']['line']}" + ) @pytest.mark.systemverilog @@ -129,9 +129,9 @@ class TestSystemVerilogReferences: assert any("top.sv" in p for p in ref_paths), f"Expected reference from top.sv, got: {ref_paths}" refs_in_top = [r for r in references if "top.sv" in (r.get("relativePath") or "")] # top.sv line 17 (0-indexed: 16): " counter #(.WIDTH(8)) u_counter (" - assert ( - refs_in_top[0]["range"]["start"]["line"] == 16 - ), f"Expected cross-file reference at line 16 (counter instantiation), got line {refs_in_top[0]['range']['start']['line']}" + assert refs_in_top[0]["range"]["start"]["line"] == 16, ( + f"Expected cross-file reference at line 16 (counter instantiation), got line {refs_in_top[0]['range']['start']['line']}" + ) def _extract_hover_text(hover_info: dict[str, Any]) -> str: @@ -256,9 +256,9 @@ class TestSystemVerilogRename: edit_lines = sorted(e["range"]["start"]["line"] for e in edits) assert 1 in edit_lines, f"Expected edit at line 1 (module declaration), got lines: {edit_lines}" decl_edits = [e for e in edits if e["range"]["start"]["line"] == 1] - assert ( - decl_edits[0]["range"]["start"]["character"] == 7 - ), f"Expected edit at char 7, got char {decl_edits[0]['range']['start']['character']}" + assert decl_edits[0]["range"]["start"]["character"] == 7, ( + f"Expected edit at char 7, got char {decl_edits[0]['range']['start']['character']}" + ) for uri, file_edits in changes.items(): for edit in file_edits: assert edit["newText"] == "my_counter", f"Expected 'my_counter', got {edit['newText']}" diff --git a/test/solidlsp/toml/test_toml_symbol_retrieval.py b/test/solidlsp/toml/test_toml_symbol_retrieval.py index 9458c51a..5538a4c8 100644 --- a/test/solidlsp/toml/test_toml_symbol_retrieval.py +++ b/test/solidlsp/toml/test_toml_symbol_retrieval.py @@ -85,9 +85,9 @@ class TestTomlSymbolRetrieval: # Children should include TOML files child_names = {child["name"] for child in root.get("children", [])} # Note: File names are stripped of extension in some cases - assert ( - "Cargo" in child_names or "Cargo.toml" in child_names or any("cargo" in name.lower() for name in child_names) - ), f"Should find Cargo.toml in tree, got: {child_names}" + assert "Cargo" in child_names or "Cargo.toml" in child_names or any("cargo" in name.lower() for name in child_names), ( + f"Should find Cargo.toml in tree, got: {child_names}" + ) @pytest.mark.parametrize("language_server", [Language.TOML], indirect=True) @pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True) diff --git a/test/solidlsp/typescript/test_typescript_basic.py b/test/solidlsp/typescript/test_typescript_basic.py index 9570bdc2..58c560f0 100644 --- a/test/solidlsp/typescript/test_typescript_basic.py +++ b/test/solidlsp/typescript/test_typescript_basic.py @@ -28,6 +28,6 @@ class TestTypescriptLanguageServer: assert helper_symbol is not None, "Could not find 'helperFunction' symbol in index.ts" sel_start = helper_symbol["selectionRange"]["start"] refs = language_server.request_references(file_path, sel_start["line"], sel_start["character"]) - assert any( - "index.ts" in ref.get("relativePath", "") for ref in refs - ), "index.ts should reference helperFunction (tried all positions in selectionRange)" + assert any("index.ts" in ref.get("relativePath", "") for ref in refs), ( + "index.ts should reference helperFunction (tried all positions in selectionRange)" + ) diff --git a/test/solidlsp/vue/test_vue_basic.py b/test/solidlsp/vue/test_vue_basic.py index c46f35aa..ca6a5e19 100644 --- a/test/solidlsp/vue/test_vue_basic.py +++ b/test/solidlsp/vue/test_vue_basic.py @@ -85,9 +85,9 @@ class TestVueDualLspArchitecture: # Verify references include .vue files (components that import the store) vue_refs = [ref for ref in refs if ".vue" in ref.get("uri", "")] - assert ( - len(vue_refs) >= 3 - ), f"Should find at least 3 references in Vue components, found {len(vue_refs)}: {[ref.get('uri', '') for ref in vue_refs]}" + assert len(vue_refs) >= 3, ( + f"Should find at least 3 references in Vue components, found {len(vue_refs)}: {[ref.get('uri', '') for ref in vue_refs]}" + ) # Verify specific components that use the store expected_vue_files = ["App.vue", "CalculatorInput.vue", "CalculatorDisplay.vue"] @@ -131,9 +131,9 @@ class TestVueDualLspArchitecture: all_ref_uris = [ref.get("uri", "") for ref in refs] has_ts_refs = any(".ts" in uri and "types" not in uri for uri in all_ref_uris) - assert ( - has_ts_refs - ), f"Operation type should be referenced in TypeScript files like calculator.ts. Found references in: {all_ref_uris}" + assert has_ts_refs, ( + f"Operation type should be referenced in TypeScript files like calculator.ts. Found references in: {all_ref_uris}" + ) @pytest.mark.parametrize("language_server", [Language.VUE], indirect=True) def test_reference_deduplication(self, language_server: SolidLanguageServer) -> None: @@ -260,9 +260,9 @@ class TestVueEdgeCases: # Vue LSP returns SFC structure (template/script/style sections) for .vue files # This is expected behavior - overview shows the file's high-level structure - assert ( - len(symbol_names) >= 1 - ), f"Should have at least 1 symbol name in overview (e.g., 'App' or SFC section), got {len(symbol_names)}: {symbol_names}" + assert len(symbol_names) >= 1, ( + f"Should have at least 1 symbol name in overview (e.g., 'App' or SFC section), got {len(symbol_names)}: {symbol_names}" + ) # Test overview for a TypeScript file store_file = os.path.join("src", "stores", "calculator.ts") @@ -272,18 +272,18 @@ class TestVueEdgeCases: assert len(store_overview) >= 1, f"calculator.ts should have at least 1 top-level symbol in overview, got {len(store_overview)}" store_symbol_names = [s.get("name") for s in store_overview if isinstance(s, dict)] - assert ( - "useCalculatorStore" in store_symbol_names - ), f"useCalculatorStore should be in store file overview. Found {len(store_symbol_names)} symbols: {store_symbol_names}" + assert "useCalculatorStore" in store_symbol_names, ( + f"useCalculatorStore should be in store file overview. Found {len(store_symbol_names)} symbols: {store_symbol_names}" + ) # Test overview for another Vue component button_file = os.path.join("src", "components", "CalculatorButton.vue") button_overview = language_server.request_document_overview(button_file) assert isinstance(button_overview, list), f"Button overview should be a list, got: {type(button_overview)}" - assert ( - len(button_overview) >= 1 - ), f"CalculatorButton.vue should have at least 1 top-level symbol in overview, got {len(button_overview)}" + assert len(button_overview) >= 1, ( + f"CalculatorButton.vue should have at least 1 top-level symbol in overview, got {len(button_overview)}" + ) # For Vue files, overview provides SFC structure which is useful for navigation # The detailed symbols are available via request_document_symbols @@ -324,9 +324,9 @@ class TestVueEdgeCases: stores_overview = language_server.request_dir_overview(stores_dir) assert isinstance(stores_overview, dict), f"Stores overview should be a dict, got: {type(stores_overview)}" - assert ( - len(stores_overview) == 1 - ), f"src/stores directory should have exactly 1 file (calculator.ts) in overview, got {len(stores_overview)}" + assert len(stores_overview) == 1, ( + f"src/stores directory should have exactly 1 file (calculator.ts) in overview, got {len(stores_overview)}" + ) # Verify calculator.ts is included calculator_files = [path for path in stores_overview.keys() if "calculator.ts" in path] @@ -339,18 +339,18 @@ class TestVueEdgeCases: store_path = calculator_files[0] store_symbols = stores_overview[store_path] store_symbol_names = [s.get("name") for s in store_symbols if isinstance(s, dict)] - assert ( - "useCalculatorStore" in store_symbol_names - ), f"calculator.ts should have useCalculatorStore in overview. Found {len(store_symbol_names)} symbols: {store_symbol_names}" + assert "useCalculatorStore" in store_symbol_names, ( + f"calculator.ts should have useCalculatorStore in overview. Found {len(store_symbol_names)} symbols: {store_symbol_names}" + ) # Test overview for composables directory composables_dir = os.path.join("src", "composables") composables_overview = language_server.request_dir_overview(composables_dir) assert isinstance(composables_overview, dict), f"Composables overview should be a dict, got: {type(composables_overview)}" - assert ( - len(composables_overview) == 2 - ), f"src/composables directory should have exactly 2 files in overview, got {len(composables_overview)}" + assert len(composables_overview) == 2, ( + f"src/composables directory should have exactly 2 files in overview, got {len(composables_overview)}" + ) # Verify composable files are included expected_composables = ["useFormatter.ts", "useTheme.ts"] diff --git a/test/solidlsp/vue/test_vue_error_cases.py b/test/solidlsp/vue/test_vue_error_cases.py index 5396666f..ee6a5496 100644 --- a/test/solidlsp/vue/test_vue_error_cases.py +++ b/test/solidlsp/vue/test_vue_error_cases.py @@ -235,9 +235,9 @@ class TestVueUndefinedSymbols: result = language_server.request_containing_symbol(file_path, 1, 0) # Should handle gracefully - return None, empty dict, or a valid parent symbol - assert ( - result is None or result == {} or isinstance(result, dict) - ), f"Whitespace line should return None, empty dict, or valid symbol. Got: {result}" + assert result is None or result == {} or isinstance(result, dict), ( + f"Whitespace line should return None, empty dict, or valid symbol. Got: {result}" + ) @pytest.mark.parametrize("language_server", [Language.VUE], indirect=True) def test_definition_at_keyword_position(self, language_server: SolidLanguageServer) -> None: @@ -271,9 +271,9 @@ class TestVueEdgeCasePositions: result = language_server.request_containing_symbol(file_path, 0, 0) # Should handle gracefully - assert ( - result is None or result == {} or isinstance(result, dict) - ), f"Position 0,0 should return None, empty dict, or valid symbol. Got: {result}" + assert result is None or result == {} or isinstance(result, dict), ( + f"Position 0,0 should return None, empty dict, or valid symbol. Got: {result}" + ) @pytest.mark.parametrize("language_server", [Language.VUE], indirect=True) def test_references_at_file_start(self, language_server: SolidLanguageServer) -> None: @@ -317,9 +317,9 @@ class TestVueEdgeCasePositions: result = language_server.request_containing_symbol(file_path, 5, 10) # Should handle gracefully - template doesn't have containing symbols in the same way - assert ( - result is None or result == {} or isinstance(result, dict) - ), f"Template position should return None, empty dict, or valid symbol. Got: {result}" + assert result is None or result == {} or isinstance(result, dict), ( + f"Template position should return None, empty dict, or valid symbol. Got: {result}" + ) @pytest.mark.parametrize("language_server", [Language.VUE], indirect=True) def test_zero_character_positions(self, language_server: SolidLanguageServer) -> None: @@ -334,9 +334,9 @@ class TestVueEdgeCasePositions: result = language_server.request_containing_symbol(file_path, line, 0) # Should handle gracefully - assert ( - result is None or result == {} or isinstance(result, dict) - ), f"Line {line}, character 0 should return None, empty dict, or valid symbol. Got: {result}" + assert result is None or result == {} or isinstance(result, dict), ( + f"Line {line}, character 0 should return None, empty dict, or valid symbol. Got: {result}" + ) class TestVueTypescriptFileErrors: diff --git a/test/solidlsp/vue/test_vue_rename.py b/test/solidlsp/vue/test_vue_rename.py index 5ba99fd9..01ffbe25 100644 --- a/test/solidlsp/vue/test_vue_rename.py +++ b/test/solidlsp/vue/test_vue_rename.py @@ -121,9 +121,9 @@ class TestVueRename: assert len(document_changes) > 0, "Should have at least one document change" composable_changes = [dc for dc in document_changes if "useFormatter.ts" in dc.get("textDocument", {}).get("uri", "")] - assert ( - len(composable_changes) > 0 - ), f"Should have edits for useFormatter.ts (definition). Found changes for: {[dc.get('textDocument', {}).get('uri', '') for dc in document_changes]}" + assert len(composable_changes) > 0, ( + f"Should have edits for useFormatter.ts (definition). Found changes for: {[dc.get('textDocument', {}).get('uri', '') for dc in document_changes]}" + ) for change in document_changes: assert "textDocument" in change, "Document change should have textDocument" diff --git a/test/solidlsp/vue/test_vue_symbol_retrieval.py b/test/solidlsp/vue/test_vue_symbol_retrieval.py index 7d33f88f..04a22e70 100644 --- a/test/solidlsp/vue/test_vue_symbol_retrieval.py +++ b/test/solidlsp/vue/test_vue_symbol_retrieval.py @@ -93,9 +93,9 @@ class TestVueSymbolRetrieval: containing_symbol = language_server.request_containing_symbol(file_path, import_line, import_character) # Should return None or empty dictionary for positions without containing symbol - assert ( - containing_symbol is None or containing_symbol == {} - ), f"Expected None or empty dict for import position, got {containing_symbol}" + assert containing_symbol is None or containing_symbol == {}, ( + f"Expected None or empty dict for import position, got {containing_symbol}" + ) @pytest.mark.parametrize("language_server", [Language.VUE], indirect=True) def test_request_referencing_symbols_store_function(self, language_server: SolidLanguageServer) -> None: @@ -153,9 +153,9 @@ class TestVueSymbolRetrieval: ] # Verify we found references - useFormatter is imported and used in CalculatorInput.vue - assert ( - len(ref_symbols) >= 1 - ), f"useFormatter should have at least 1 reference (used in CalculatorInput.vue), found {len(ref_symbols)} references" + assert len(ref_symbols) >= 1, ( + f"useFormatter should have at least 1 reference (used in CalculatorInput.vue), found {len(ref_symbols)} references" + ) # Check for references in Vue components vue_refs = [ @@ -182,9 +182,9 @@ class TestVueSymbolRetrieval: definitions = language_server.request_definition(input_file, 4, 10) assert len(definitions) == 1, f"Should find exactly 1 definition for CalculatorButton import, got {len(definitions)}" - assert ( - "CalculatorButton.vue" in definitions[0]["relativePath"] - ), f"Definition should point to CalculatorButton.vue, got {definitions[0]['relativePath']}" + assert "CalculatorButton.vue" in definitions[0]["relativePath"], ( + f"Definition should point to CalculatorButton.vue, got {definitions[0]['relativePath']}" + ) refs = language_server.request_references(input_file, 4, 10) @@ -225,9 +225,9 @@ class TestVueSymbolRetrieval: # Verify it points to the store file if "location" in defining_symbol and "uri" in defining_symbol["location"]: - assert ( - "calculator.ts" in defining_symbol["location"]["uri"] - ), f"Should point to calculator.ts, got {defining_symbol['location']['uri']}" + assert "calculator.ts" in defining_symbol["location"]["uri"], ( + f"Should point to calculator.ts, got {defining_symbol['location']['uri']}" + ) @pytest.mark.parametrize("language_server", [Language.VUE], indirect=True) def test_request_defining_symbol_component_import(self, language_server: SolidLanguageServer) -> None: @@ -239,9 +239,9 @@ class TestVueSymbolRetrieval: definition = definitions[0] assert definition["relativePath"] is not None, "Definition should have a relative path" - assert ( - "CalculatorButton.vue" in definition["relativePath"] - ), f"Should point to CalculatorButton.vue, got {definition['relativePath']}" + assert "CalculatorButton.vue" in definition["relativePath"], ( + f"Should point to CalculatorButton.vue, got {definition['relativePath']}" + ) assert definition["range"]["start"]["line"] == 0, "Definition should point to start of .vue file" diff --git a/test/solidlsp/zig/test_zig_basic.py b/test/solidlsp/zig/test_zig_basic.py index 3753621f..12e23f8c 100644 --- a/test/solidlsp/zig/test_zig_basic.py +++ b/test/solidlsp/zig/test_zig_basic.py @@ -193,9 +193,9 @@ class TestZigLanguageServer: # Verify exact location in main.zig (line 8, 0-indexed: 7) main_ref_line = main_refs[0]["range"]["start"]["line"] - assert ( - main_ref_line == 7 - ), f"Calculator reference in main.zig should be at line 8 (0-indexed: 7), found at line {main_ref_line + 1}" + assert main_ref_line == 7, ( + f"Calculator reference in main.zig should be at line 8 (0-indexed: 7), found at line {main_ref_line + 1}" + ) @pytest.mark.parametrize("language_server", [Language.ZIG], indirect=True) def test_cross_file_references_within_file(self, language_server: SolidLanguageServer) -> None: