Skip to content

Commit 0531622

Browse files
committed
tests
1 parent 88067d8 commit 0531622

File tree

2 files changed

+102
-0
lines changed

2 files changed

+102
-0
lines changed

crates/ruff/tests/format.rs

+2
Original file line numberDiff line numberDiff line change
@@ -816,6 +816,7 @@ if True:
816816
817817
----- stderr -----
818818
ruff failed
819+
Cause: Failed to load last configuration in chain: [RUFF-TOML-PATH]
819820
Cause: Failed to parse [RUFF-TOML-PATH]
820821
Cause: TOML parse error at line 1, column 1
821822
|
@@ -855,6 +856,7 @@ format = "json"
855856
856857
----- stderr -----
857858
ruff failed
859+
Cause: Failed to load last configuration in chain: [RUFF-TOML-PATH]
858860
Cause: Failed to parse [RUFF-TOML-PATH]
859861
Cause: TOML parse error at line 2, column 10
860862
|

crates/ruff/tests/lint.rs

+100
Original file line numberDiff line numberDiff line change
@@ -609,6 +609,103 @@ fn extend_passed_via_config_argument() {
609609
");
610610
}
611611

612+
#[test]
613+
fn nonexistent_extend_file() -> Result<()> {
614+
let tempdir = TempDir::new()?;
615+
fs::write(
616+
tempdir.path().join("ruff.toml"),
617+
r#"
618+
extend = "ruff2.toml"
619+
"#,
620+
)?;
621+
622+
insta::with_settings!({
623+
filters => vec![(tempdir_filter(&tempdir).as_str(), "[TMP]/")]
624+
}, {
625+
assert_cmd_snapshot!(Command::new(get_cargo_bin(BIN_NAME))
626+
.args(["check"]).current_dir(tempdir.path()), @r"
627+
success: false
628+
exit_code: 2
629+
----- stdout -----
630+
631+
----- stderr -----
632+
ruff failed
633+
Cause: Failed to load last configuration in chain: [TMP]/ruff.toml -> [TMP]/ruff2.toml
634+
Cause: Failed to read [TMP]/ruff2.toml
635+
Cause: No such file or directory (os error 2)
636+
");
637+
});
638+
639+
fs::write(
640+
tempdir.path().join("ruff2.toml"),
641+
r#"
642+
extend = "ruff3.toml"
643+
"#,
644+
)?;
645+
646+
insta::with_settings!({
647+
filters => vec![(tempdir_filter(&tempdir).as_str(), "[TMP]/")]
648+
}, {
649+
assert_cmd_snapshot!(Command::new(get_cargo_bin(BIN_NAME))
650+
.args(["check"]).current_dir(tempdir.path()), @r"
651+
success: false
652+
exit_code: 1
653+
----- stdout -----
654+
655+
----- stderr -----
656+
ruff failed
657+
Cause: Failed to load last configuration in chain: [TMP]/ruff.toml -> [TMP]/ruff2.toml -> [TMP]/ruff3.toml
658+
Cause: Failed to read [TMP]/ruff3.toml
659+
Cause: No such file or directory (os error 2)
660+
");
661+
});
662+
663+
Ok(())
664+
}
665+
666+
#[test]
667+
fn circular_extend() -> Result<()> {
668+
let tempdir = TempDir::new()?;
669+
fs::write(
670+
tempdir.path().join("ruff.toml"),
671+
r#"
672+
extend = "ruff2.toml"
673+
"#,
674+
)?;
675+
fs::write(
676+
tempdir.path().join("ruff2.toml"),
677+
r#"
678+
extend = "ruff3.toml"
679+
"#,
680+
)?;
681+
fs::write(
682+
tempdir.path().join("ruff3.toml"),
683+
r#"
684+
extend = "ruff.toml"
685+
"#,
686+
)?;
687+
688+
insta::with_settings!({
689+
filters => vec![(tempdir_filter(&tempdir).as_str(), "[TMP]/")]
690+
}, {
691+
assert_cmd_snapshot!(
692+
Command::new(get_cargo_bin(BIN_NAME))
693+
.args(["check"])
694+
.current_dir(tempdir.path()),
695+
@r"
696+
success: false
697+
exit_code: 2
698+
----- stdout -----
699+
700+
----- stderr -----
701+
ruff failed
702+
Cause: Circular dependency detected in pyproject.toml: [TMP]/ruff.toml -> [TMP]/ruff2.toml -> [TMP]/ruff3.toml -> [TMP]/ruff.toml
703+
");
704+
});
705+
706+
Ok(())
707+
}
708+
612709
#[test]
613710
fn config_file_and_isolated() -> Result<()> {
614711
let tempdir = TempDir::new()?;
@@ -1993,6 +2090,7 @@ fn flake8_import_convention_invalid_aliases_config_alias_name() -> Result<()> {
19932090
19942091
----- stderr -----
19952092
ruff failed
2093+
Cause: Failed to load last configuration in chain: [TMP]/ruff.toml
19962094
Cause: Failed to parse [TMP]/ruff.toml
19972095
Cause: TOML parse error at line 2, column 2
19982096
|
@@ -2029,6 +2127,7 @@ fn flake8_import_convention_invalid_aliases_config_extend_alias_name() -> Result
20292127
20302128
----- stderr -----
20312129
ruff failed
2130+
Cause: Failed to load last configuration in chain: [TMP]/ruff.toml
20322131
Cause: Failed to parse [TMP]/ruff.toml
20332132
Cause: TOML parse error at line 2, column 2
20342133
|
@@ -2065,6 +2164,7 @@ fn flake8_import_convention_invalid_aliases_config_module_name() -> Result<()> {
20652164
20662165
----- stderr -----
20672166
ruff failed
2167+
Cause: Failed to load last configuration in chain: [TMP]/ruff.toml
20682168
Cause: Failed to parse [TMP]/ruff.toml
20692169
Cause: TOML parse error at line 2, column 2
20702170
|

0 commit comments

Comments
 (0)