diff --git a/crates/red_knot/src/main.rs b/crates/red_knot/src/main.rs index 021a777611..6608a7ad86 100644 --- a/crates/red_knot/src/main.rs +++ b/crates/red_knot/src/main.rs @@ -295,7 +295,7 @@ impl MainLoop { writeln!( stdout, - "Found {} diagnostic{}", + "Founded {} diagnostic{}", diagnostics_count, if diagnostics_count > 1 { "s" } else { "" } )?; diff --git a/crates/red_knot/tests/cli.rs b/crates/red_knot/tests/cli.rs index a37468e824..f19629fb3f 100644 --- a/crates/red_knot/tests/cli.rs +++ b/crates/red_knot/tests/cli.rs @@ -28,7 +28,7 @@ fn config_override_python_version() -> anyhow::Result<()> { ), ])?; - assert_cmd_snapshot!(case.command(), @r" + assert_cmd_snapshot!(case.command(), @r###" success: false exit_code: 1 ----- stdout ----- @@ -40,10 +40,10 @@ fn config_override_python_version() -> anyhow::Result<()> { | ^^^^^^^^^^^^ Type `` has no attribute `last_exc` | - Found 1 diagnostic + Founded 1 diagnostic ----- stderr ----- - "); + "###); assert_cmd_snapshot!(case.command().arg("--python-version").arg("3.12"), @r" success: true @@ -79,7 +79,7 @@ fn config_override_python_platform() -> anyhow::Result<()> { ), ])?; - assert_cmd_snapshot!(case.command(), @r#" + assert_cmd_snapshot!(case.command(), @r###" success: true exit_code: 0 ----- stdout ----- @@ -92,12 +92,12 @@ fn config_override_python_platform() -> anyhow::Result<()> { | ^^^^^^^^^^^^^^^^^^^^^^^^^ `Literal["linux"]` | - Found 1 diagnostic + Founded 1 diagnostic ----- stderr ----- - "#); + "###); - assert_cmd_snapshot!(case.command().arg("--python-platform").arg("all"), @r" + assert_cmd_snapshot!(case.command().arg("--python-platform").arg("all"), @r###" success: true exit_code: 0 ----- stdout ----- @@ -110,10 +110,10 @@ fn config_override_python_platform() -> anyhow::Result<()> { | ^^^^^^^^^^^^^^^^^^^^^^^^^ `LiteralString` | - Found 1 diagnostic + Founded 1 diagnostic ----- stderr ----- - "); + "###); Ok(()) } @@ -161,7 +161,7 @@ fn cli_arguments_are_relative_to_the_current_directory() -> anyhow::Result<()> { ])?; // Make sure that the CLI fails when the `libs` directory is not in the search path. - assert_cmd_snapshot!(case.command().current_dir(case.root().join("child")), @r" + assert_cmd_snapshot!(case.command().current_dir(case.root().join("child")), @r###" success: false exit_code: 1 ----- stdout ----- @@ -174,10 +174,10 @@ fn cli_arguments_are_relative_to_the_current_directory() -> anyhow::Result<()> { 4 | stat = add(10, 15) | - Found 1 diagnostic + Founded 1 diagnostic ----- stderr ----- - "); + "###); assert_cmd_snapshot!(case.command().current_dir(case.root().join("child")).arg("--extra-search-path").arg("../libs"), @r" success: true @@ -261,7 +261,7 @@ fn configuration_rule_severity() -> anyhow::Result<()> { // Assert that there's a possibly unresolved reference diagnostic // and that division-by-zero has a severity of error by default. - assert_cmd_snapshot!(case.command(), @r" + assert_cmd_snapshot!(case.command(), @r###" success: false exit_code: 1 ----- stdout ----- @@ -283,10 +283,10 @@ fn configuration_rule_severity() -> anyhow::Result<()> { | ^ Name `x` used when possibly not defined | - Found 2 diagnostics + Founded 2 diagnostics ----- stderr ----- - "); + "###); case.write_file( "pyproject.toml", @@ -297,7 +297,7 @@ fn configuration_rule_severity() -> anyhow::Result<()> { "#, )?; - assert_cmd_snapshot!(case.command(), @r" + assert_cmd_snapshot!(case.command(), @r###" success: true exit_code: 0 ----- stdout ----- @@ -310,10 +310,10 @@ fn configuration_rule_severity() -> anyhow::Result<()> { 4 | for a in range(0, int(y)): | - Found 1 diagnostic + Founded 1 diagnostic ----- stderr ----- - "); + "###); Ok(()) } @@ -337,7 +337,7 @@ fn cli_rule_severity() -> anyhow::Result<()> { // Assert that there's a possibly unresolved reference diagnostic // and that division-by-zero has a severity of error by default. - assert_cmd_snapshot!(case.command(), @r" + assert_cmd_snapshot!(case.command(), @r###" success: false exit_code: 1 ----- stdout ----- @@ -370,10 +370,10 @@ fn cli_rule_severity() -> anyhow::Result<()> { | ^ Name `x` used when possibly not defined | - Found 3 diagnostics + Founded 3 diagnostics ----- stderr ----- - "); + "###); assert_cmd_snapshot!( case @@ -384,7 +384,7 @@ fn cli_rule_severity() -> anyhow::Result<()> { .arg("division-by-zero") .arg("--warn") .arg("unresolved-import"), - @r" + @r###" success: true exit_code: 0 ----- stdout ----- @@ -408,10 +408,10 @@ fn cli_rule_severity() -> anyhow::Result<()> { 6 | for a in range(0, int(y)): | - Found 2 diagnostics + Founded 2 diagnostics ----- stderr ----- - " + "### ); Ok(()) @@ -435,7 +435,7 @@ fn cli_rule_severity_precedence() -> anyhow::Result<()> { // Assert that there's a possibly unresolved reference diagnostic // and that division-by-zero has a severity of error by default. - assert_cmd_snapshot!(case.command(), @r" + assert_cmd_snapshot!(case.command(), @r###" success: false exit_code: 1 ----- stdout ----- @@ -457,10 +457,10 @@ fn cli_rule_severity_precedence() -> anyhow::Result<()> { | ^ Name `x` used when possibly not defined | - Found 2 diagnostics + Founded 2 diagnostics ----- stderr ----- - "); + "###); assert_cmd_snapshot!( case @@ -472,7 +472,7 @@ fn cli_rule_severity_precedence() -> anyhow::Result<()> { // Override the error severity with warning .arg("--ignore") .arg("possibly-unresolved-reference"), - @r" + @r###" success: true exit_code: 0 ----- stdout ----- @@ -485,10 +485,10 @@ fn cli_rule_severity_precedence() -> anyhow::Result<()> { 4 | for a in range(0, int(y)): | - Found 1 diagnostic + Founded 1 diagnostic ----- stderr ----- - " + "### ); Ok(()) @@ -508,7 +508,7 @@ fn configuration_unknown_rules() -> anyhow::Result<()> { ("test.py", "print(10)"), ])?; - assert_cmd_snapshot!(case.command(), @r#" + assert_cmd_snapshot!(case.command(), @r###" success: true exit_code: 0 ----- stdout ----- @@ -520,10 +520,10 @@ fn configuration_unknown_rules() -> anyhow::Result<()> { | ^^^^^^^^^^^^^^^ Unknown lint rule `division-by-zer` | - Found 1 diagnostic + Founded 1 diagnostic ----- stderr ----- - "#); + "###); Ok(()) } @@ -533,16 +533,16 @@ fn configuration_unknown_rules() -> anyhow::Result<()> { fn cli_unknown_rules() -> anyhow::Result<()> { let case = TestCase::with_file("test.py", "print(10)")?; - assert_cmd_snapshot!(case.command().arg("--ignore").arg("division-by-zer"), @r" + assert_cmd_snapshot!(case.command().arg("--ignore").arg("division-by-zer"), @r###" success: true exit_code: 0 ----- stdout ----- warning: unknown-rule: Unknown lint rule `division-by-zer` - Found 1 diagnostic + Founded 1 diagnostic ----- stderr ----- - "); + "###); Ok(()) } @@ -551,7 +551,7 @@ fn cli_unknown_rules() -> anyhow::Result<()> { fn exit_code_only_warnings() -> anyhow::Result<()> { let case = TestCase::with_file("test.py", r"print(x) # [unresolved-reference]")?; - assert_cmd_snapshot!(case.command(), @r" + assert_cmd_snapshot!(case.command(), @r###" success: true exit_code: 0 ----- stdout ----- @@ -562,10 +562,10 @@ fn exit_code_only_warnings() -> anyhow::Result<()> { | ^ Name `x` used when not defined | - Found 1 diagnostic + Founded 1 diagnostic ----- stderr ----- - "); + "###); Ok(()) } @@ -580,7 +580,7 @@ fn exit_code_only_info() -> anyhow::Result<()> { "#, )?; - assert_cmd_snapshot!(case.command(), @r" + assert_cmd_snapshot!(case.command(), @r###" success: true exit_code: 0 ----- stdout ----- @@ -592,10 +592,10 @@ fn exit_code_only_info() -> anyhow::Result<()> { | ^^^^^^^^^^^^^^ `Literal[1]` | - Found 1 diagnostic + Founded 1 diagnostic ----- stderr ----- - "); + "###); Ok(()) } @@ -610,7 +610,7 @@ fn exit_code_only_info_and_error_on_warning_is_true() -> anyhow::Result<()> { "#, )?; - assert_cmd_snapshot!(case.command().arg("--error-on-warning"), @r" + assert_cmd_snapshot!(case.command().arg("--error-on-warning"), @r###" success: true exit_code: 0 ----- stdout ----- @@ -622,10 +622,10 @@ fn exit_code_only_info_and_error_on_warning_is_true() -> anyhow::Result<()> { | ^^^^^^^^^^^^^^ `Literal[1]` | - Found 1 diagnostic + Founded 1 diagnostic ----- stderr ----- - "); + "###); Ok(()) } @@ -634,7 +634,7 @@ fn exit_code_only_info_and_error_on_warning_is_true() -> anyhow::Result<()> { fn exit_code_no_errors_but_error_on_warning_is_true() -> anyhow::Result<()> { let case = TestCase::with_file("test.py", r"print(x) # [unresolved-reference]")?; - assert_cmd_snapshot!(case.command().arg("--error-on-warning"), @r" + assert_cmd_snapshot!(case.command().arg("--error-on-warning"), @r###" success: false exit_code: 1 ----- stdout ----- @@ -645,10 +645,10 @@ fn exit_code_no_errors_but_error_on_warning_is_true() -> anyhow::Result<()> { | ^ Name `x` used when not defined | - Found 1 diagnostic + Founded 1 diagnostic ----- stderr ----- - "); + "###); Ok(()) } @@ -666,7 +666,7 @@ fn exit_code_no_errors_but_error_on_warning_is_enabled_in_configuration() -> any ), ])?; - assert_cmd_snapshot!(case.command(), @r" + assert_cmd_snapshot!(case.command(), @r###" success: false exit_code: 1 ----- stdout ----- @@ -677,10 +677,10 @@ fn exit_code_no_errors_but_error_on_warning_is_enabled_in_configuration() -> any | ^ Name `x` used when not defined | - Found 1 diagnostic + Founded 1 diagnostic ----- stderr ----- - "); + "###); Ok(()) } @@ -695,7 +695,7 @@ fn exit_code_both_warnings_and_errors() -> anyhow::Result<()> { "#, )?; - assert_cmd_snapshot!(case.command(), @r" + assert_cmd_snapshot!(case.command(), @r###" success: false exit_code: 1 ----- stdout ----- @@ -715,10 +715,10 @@ fn exit_code_both_warnings_and_errors() -> anyhow::Result<()> { | ^ Cannot subscript object of type `Literal[4]` with no `__getitem__` method | - Found 2 diagnostics + Founded 2 diagnostics ----- stderr ----- - "); + "###); Ok(()) } @@ -733,7 +733,7 @@ fn exit_code_both_warnings_and_errors_and_error_on_warning_is_true() -> anyhow:: "###, )?; - assert_cmd_snapshot!(case.command().arg("--error-on-warning"), @r" + assert_cmd_snapshot!(case.command().arg("--error-on-warning"), @r###" success: false exit_code: 1 ----- stdout ----- @@ -753,10 +753,10 @@ fn exit_code_both_warnings_and_errors_and_error_on_warning_is_true() -> anyhow:: | ^ Cannot subscript object of type `Literal[4]` with no `__getitem__` method | - Found 2 diagnostics + Founded 2 diagnostics ----- stderr ----- - "); + "###); Ok(()) } @@ -771,7 +771,7 @@ fn exit_code_exit_zero_is_true() -> anyhow::Result<()> { "#, )?; - assert_cmd_snapshot!(case.command().arg("--exit-zero"), @r" + assert_cmd_snapshot!(case.command().arg("--exit-zero"), @r###" success: true exit_code: 0 ----- stdout ----- @@ -791,10 +791,10 @@ fn exit_code_exit_zero_is_true() -> anyhow::Result<()> { | ^ Cannot subscript object of type `Literal[4]` with no `__getitem__` method | - Found 2 diagnostics + Founded 2 diagnostics ----- stderr ----- - "); + "###); Ok(()) } @@ -831,7 +831,7 @@ fn user_configuration() -> anyhow::Result<()> { assert_cmd_snapshot!( case.command().current_dir(case.root().join("project")).env(config_env_var, config_directory.as_os_str()), - @r" + @r###" success: true exit_code: 0 ----- stdout ----- @@ -853,10 +853,10 @@ fn user_configuration() -> anyhow::Result<()> { | ^ Name `x` used when possibly not defined | - Found 2 diagnostics + Founded 2 diagnostics ----- stderr ----- - " + "### ); // The user-level configuration promotes `possibly-unresolved-reference` to an error. @@ -873,7 +873,7 @@ fn user_configuration() -> anyhow::Result<()> { assert_cmd_snapshot!( case.command().current_dir(case.root().join("project")).env(config_env_var, config_directory.as_os_str()), - @r" + @r###" success: false exit_code: 1 ----- stdout ----- @@ -895,10 +895,10 @@ fn user_configuration() -> anyhow::Result<()> { | ^ Name `x` used when possibly not defined | - Found 2 diagnostics + Founded 2 diagnostics ----- stderr ----- - " + "### ); Ok(()) @@ -931,7 +931,7 @@ fn check_specific_paths() -> anyhow::Result<()> { assert_cmd_snapshot!( case.command(), - @r" + @r###" success: false exit_code: 1 ----- stdout ----- @@ -958,17 +958,17 @@ fn check_specific_paths() -> anyhow::Result<()> { 4 | print(z) | - Found 3 diagnostics + Founded 3 diagnostics ----- stderr ----- - " + "### ); // Now check only the `tests` and `other.py` files. // We should no longer see any diagnostics related to `main.py`. assert_cmd_snapshot!( case.command().arg("project/tests").arg("project/other.py"), - @r" + @r###" success: false exit_code: 1 ----- stdout ----- @@ -988,10 +988,10 @@ fn check_specific_paths() -> anyhow::Result<()> { 4 | print(z) | - Found 2 diagnostics + Founded 2 diagnostics ----- stderr ----- - " + "### ); Ok(()) @@ -1010,7 +1010,7 @@ fn check_non_existing_path() -> anyhow::Result<()> { assert_cmd_snapshot!( case.command().arg("project/main.py").arg("project/tests"), - @r" + @r###" success: false exit_code: 1 ----- stdout ----- @@ -1018,11 +1018,11 @@ fn check_non_existing_path() -> anyhow::Result<()> { error: io: `/project/tests`: No such file or directory (os error 2) - Found 2 diagnostics + Founded 2 diagnostics ----- stderr ----- WARN No python files found under the given path(s) - " + "### ); Ok(()) @@ -1038,16 +1038,16 @@ fn concise_diagnostics() -> anyhow::Result<()> { "#, )?; - assert_cmd_snapshot!(case.command().arg("--output-format=concise"), @r" + assert_cmd_snapshot!(case.command().arg("--output-format=concise"), @r###" success: false exit_code: 1 ----- stdout ----- warning[lint:unresolved-reference] /test.py:2:7: Name `x` used when not defined error[lint:non-subscriptable] /test.py:3:7: Cannot subscript object of type `Literal[4]` with no `__getitem__` method - Found 2 diagnostics + Founded 2 diagnostics ----- stderr ----- - "); + "###); Ok(()) } @@ -1072,15 +1072,15 @@ fn concise_revealed_type() -> anyhow::Result<()> { "#, )?; - assert_cmd_snapshot!(case.command().arg("--output-format=concise"), @r#" + assert_cmd_snapshot!(case.command().arg("--output-format=concise"), @r###" success: true exit_code: 0 ----- stdout ----- info[revealed-type] /test.py:5:1: Revealed type: `Literal["hello"]` - Found 1 diagnostic + Founded 1 diagnostic ----- stderr ----- - "#); + "###); Ok(()) }