WIP: Add rules only enabled during testing

Failing with... the trait `std::convert::From<codes::Rule>` is not implemented for `DiagnosticKind`
This commit is contained in:
Zanie
2023-09-07 13:39:28 -05:00
parent ebd1b296fd
commit daa9b4db72
3 changed files with 35 additions and 0 deletions

View File

@@ -865,6 +865,12 @@ pub fn code_to_rule(linter: Linter, code: &str) -> Option<(RuleGroup, Rule)> {
(Ruff, "017") => (RuleGroup::Nursery, rules::ruff::rules::QuadraticListSummation),
(Ruff, "100") => (RuleGroup::Unspecified, rules::ruff::rules::UnusedNOQA),
(Ruff, "200") => (RuleGroup::Unspecified, rules::ruff::rules::InvalidPyprojectToml),
#[cfg(test)]
(Ruff, "900") => (RuleGroup::Unspecified, rules::ruff::rules::StableTestRule),
#[cfg(test)]
(Ruff, "901") => (RuleGroup::Nursery, rules::ruff::rules::NurseryTestRule),
#[cfg(test)]
(Ruff, "902") => (RuleGroup::Preview, rules::ruff::rules::PreviewTestRule),
// flake8-django
(Flake8Django, "001") => (RuleGroup::Unspecified, rules::flake8_django::rules::DjangoNullableModelStringField),

View File

@@ -213,6 +213,31 @@ pub fn check_path(
));
}
// Raise violations for internal test rules
#[cfg(test)]
{
if settings.rules.enabled(Rule::StableTestRule) {
diagnostics.push(Diagnostic::new(
Rule::StableTestRule,
ruff_text_size::TextRange::default(),
));
}
if settings.rules.enabled(Rule::PreviewTestRule) {
diagnostics.push(Diagnostic::new(
Rule::PreviewTestRule,
ruff_text_size::TextRange::default(),
));
}
if settings.rules.enabled(Rule::NurseryTestRule) {
diagnostics.push(Diagnostic::new(
Rule::NurseryTestRule,
ruff_text_size::TextRange::default(),
));
}
}
// Ignore diagnostics based on per-file-ignores.
if !diagnostics.is_empty() && !settings.per_file_ignores.is_empty() {
let ignores = fs::ignores_from_path(path, &settings.per_file_ignores);

View File

@@ -10,6 +10,8 @@ pub(crate) use mutable_class_default::*;
pub(crate) use mutable_dataclass_default::*;
pub(crate) use pairwise_over_zipped::*;
pub(crate) use static_key_dict_comprehension::*;
#[cfg(test)]
pub(crate) use test_rules::*;
pub(crate) use unnecessary_iterable_allocation_for_first_element::*;
#[cfg(feature = "unreachable-code")]
pub(crate) use unreachable::*;
@@ -29,6 +31,8 @@ mod mutable_class_default;
mod mutable_dataclass_default;
mod pairwise_over_zipped;
mod static_key_dict_comprehension;
#[cfg(test)]
mod test_rules;
mod unnecessary_iterable_allocation_for_first_element;
#[cfg(feature = "unreachable-code")]
pub(crate) mod unreachable;