mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-21 19:05:09 +00:00
Require documentation for all lint rules (#7751)
## Summary Now that all rules have documentation, we can enforce the requirement in our tests.
This commit is contained in:
parent
6a4437ea81
commit
1df8101b9e
3 changed files with 17 additions and 4 deletions
|
@ -4,12 +4,12 @@
|
||||||
/// `--select`. For pylint this is e.g. C0414 and E0118 but also C and E01.
|
/// `--select`. For pylint this is e.g. C0414 and E0118 but also C and E01.
|
||||||
use std::fmt::Formatter;
|
use std::fmt::Formatter;
|
||||||
|
|
||||||
use strum_macros::{AsRefStr, EnumIter};
|
|
||||||
|
|
||||||
use crate::registry::{AsRule, Linter};
|
use crate::registry::{AsRule, Linter};
|
||||||
use crate::rule_selector::is_single_rule_selector;
|
use crate::rule_selector::is_single_rule_selector;
|
||||||
use crate::rules;
|
use crate::rules;
|
||||||
|
|
||||||
|
use strum_macros::{AsRefStr, EnumIter};
|
||||||
|
|
||||||
#[derive(PartialEq, Eq, PartialOrd, Ord)]
|
#[derive(PartialEq, Eq, PartialOrd, Ord)]
|
||||||
pub struct NoqaCode(&'static str, &'static str);
|
pub struct NoqaCode(&'static str, &'static str);
|
||||||
|
|
||||||
|
|
|
@ -427,7 +427,18 @@ mod tests {
|
||||||
use super::{Linter, Rule, RuleNamespace};
|
use super::{Linter, Rule, RuleNamespace};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_rule_naming_convention() {
|
fn documentation() {
|
||||||
|
for rule in Rule::iter() {
|
||||||
|
assert!(
|
||||||
|
rule.explanation().is_some(),
|
||||||
|
"Rule {} is missing documentation",
|
||||||
|
rule.as_ref()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn rule_naming_convention() {
|
||||||
// The disallowed rule names are defined in a separate file so that they can also be picked up by add_rule.py.
|
// The disallowed rule names are defined in a separate file so that they can also be picked up by add_rule.py.
|
||||||
let patterns: Vec<_> = include_str!("../resources/test/disallowed_rule_names.txt")
|
let patterns: Vec<_> = include_str!("../resources/test/disallowed_rule_names.txt")
|
||||||
.trim()
|
.trim()
|
||||||
|
@ -459,7 +470,7 @@ mod tests {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_linter_parse_code() {
|
fn linter_parse_code() {
|
||||||
for rule in Rule::iter() {
|
for rule in Rule::iter() {
|
||||||
let code = format!("{}", rule.noqa_code());
|
let code = format!("{}", rule.noqa_code());
|
||||||
let (linter, rest) =
|
let (linter, rest) =
|
||||||
|
|
|
@ -416,6 +416,8 @@ fn register_rules<'a>(input: impl Iterator<Item = &'a Rule>) -> TokenStream {
|
||||||
}
|
}
|
||||||
|
|
||||||
quote! {
|
quote! {
|
||||||
|
use ruff_diagnostics::Violation;
|
||||||
|
|
||||||
#[derive(
|
#[derive(
|
||||||
EnumIter,
|
EnumIter,
|
||||||
Debug,
|
Debug,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue