This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [toml](https://redirect.github.com/toml-rs/toml) | workspace.dependencies | minor | `0.8.11` -> `0.9.0` | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>toml-rs/toml (toml)</summary> ### [`v0.9.2`](https://redirect.github.com/toml-rs/toml/compare/toml-v0.9.1...toml-v0.9.2) [Compare Source](https://redirect.github.com/toml-rs/toml/compare/toml-v0.9.1...toml-v0.9.2) ### [`v0.9.1`](https://redirect.github.com/toml-rs/toml/compare/toml-v0.9.0...toml-v0.9.1) [Compare Source](https://redirect.github.com/toml-rs/toml/compare/toml-v0.9.0...toml-v0.9.1) ### [`v0.9.0`](https://redirect.github.com/toml-rs/toml/compare/toml-v0.8.23...toml-v0.9.0) [Compare Source](https://redirect.github.com/toml-rs/toml/compare/toml-v0.8.23...toml-v0.9.0) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/astral-sh/ruff). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4yMy4yIiwidXBkYXRlZEluVmVyIjoiNDEuMjMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW50ZXJuYWwiXX0=--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Dhruv Manilawala <dhruvmanila@gmail.com>
105 lines
2.8 KiB
Rust
105 lines
2.8 KiB
Rust
//! Tests for the --version command
|
|
use std::fs;
|
|
use std::process::Command;
|
|
|
|
use anyhow::Result;
|
|
use insta_cmd::{assert_cmd_snapshot, get_cargo_bin};
|
|
use tempfile::TempDir;
|
|
|
|
const BIN_NAME: &str = "ruff";
|
|
const VERSION_FILTER: [(&str, &str); 1] = [(
|
|
r"\d+\.\d+\.\d+(\+\d+)?( \(\w{9} \d\d\d\d-\d\d-\d\d\))?",
|
|
"[VERSION]",
|
|
)];
|
|
|
|
#[test]
|
|
fn version_basics() {
|
|
insta::with_settings!({filters => VERSION_FILTER.to_vec()}, {
|
|
assert_cmd_snapshot!(
|
|
Command::new(get_cargo_bin(BIN_NAME)).arg("version"), @r"
|
|
success: true
|
|
exit_code: 0
|
|
----- stdout -----
|
|
ruff [VERSION]
|
|
|
|
----- stderr -----
|
|
"
|
|
);
|
|
});
|
|
}
|
|
|
|
/// `--config` is a global option,
|
|
/// so it's allowed to pass --config to subcommands such as `version`
|
|
/// -- the flag is simply ignored
|
|
#[test]
|
|
fn config_option_allowed_but_ignored() -> Result<()> {
|
|
let tempdir = TempDir::new()?;
|
|
let ruff_dot_toml = tempdir.path().join("ruff.toml");
|
|
fs::File::create(&ruff_dot_toml)?;
|
|
insta::with_settings!({filters => VERSION_FILTER.to_vec()}, {
|
|
assert_cmd_snapshot!(
|
|
Command::new(get_cargo_bin(BIN_NAME))
|
|
.arg("version")
|
|
.arg("--config")
|
|
.arg(&ruff_dot_toml)
|
|
.args(["--config", "lint.isort.extra-standard-library = ['foo', 'bar']"]), @r"
|
|
success: true
|
|
exit_code: 0
|
|
----- stdout -----
|
|
ruff [VERSION]
|
|
|
|
----- stderr -----
|
|
"
|
|
);
|
|
});
|
|
Ok(())
|
|
}
|
|
#[test]
|
|
fn config_option_ignored_but_validated() {
|
|
insta::with_settings!({filters => VERSION_FILTER.to_vec()}, {
|
|
assert_cmd_snapshot!(
|
|
Command::new(get_cargo_bin(BIN_NAME))
|
|
.arg("version")
|
|
.args(["--config", "foo = bar"]), @r"
|
|
success: false
|
|
exit_code: 2
|
|
----- stdout -----
|
|
|
|
----- stderr -----
|
|
error: invalid value 'foo = bar' for '--config <CONFIG_OPTION>'
|
|
|
|
tip: A `--config` flag must either be a path to a `.toml` configuration file
|
|
or a TOML `<KEY> = <VALUE>` pair overriding a specific configuration
|
|
option
|
|
|
|
The supplied argument is not valid TOML:
|
|
|
|
TOML parse error at line 1, column 7
|
|
|
|
|
1 | foo = bar
|
|
| ^^^
|
|
string values must be quoted, expected literal string
|
|
|
|
For more information, try '--help'.
|
|
"
|
|
);
|
|
});
|
|
}
|
|
|
|
/// `--isolated` is also a global option,
|
|
#[test]
|
|
fn isolated_option_allowed() {
|
|
insta::with_settings!({filters => VERSION_FILTER.to_vec()}, {
|
|
assert_cmd_snapshot!(
|
|
Command::new(get_cargo_bin(BIN_NAME)).arg("version").arg("--isolated"), @r"
|
|
success: true
|
|
exit_code: 0
|
|
----- stdout -----
|
|
ruff [VERSION]
|
|
|
|
----- stderr -----
|
|
"
|
|
);
|
|
});
|
|
}
|