From 8a97a760382fb3cfdfca40f79558b517479501f0 Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Sun, 13 Nov 2022 16:09:44 -0500 Subject: [PATCH] Make # noqa detection case-insensitive (#728) --- src/noqa.rs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/noqa.rs b/src/noqa.rs index ea1b2a9181..5558071544 100644 --- a/src/noqa.rs +++ b/src/noqa.rs @@ -10,7 +10,7 @@ use regex::Regex; use crate::checks::{Check, CheckCode}; static NO_QA_REGEX: Lazy = Lazy::new(|| { - Regex::new(r"(?P\s*# noqa(?::\s?(?P([A-Z]+[0-9]+(?:[,\s]+)?)+))?)") + Regex::new(r"(?P\s*(?i:# noqa)(?::\s?(?P([A-Z]+[0-9]+(?:[,\s]+)?)+))?)") .expect("Invalid regex") }); static SPLIT_COMMA_REGEX: Lazy = Lazy::new(|| Regex::new(r"[,\s]").expect("Invalid regex")); @@ -118,7 +118,21 @@ mod tests { use crate::ast::types::Range; use crate::checks::{Check, CheckKind}; - use crate::noqa::add_noqa_inner; + use crate::noqa::{add_noqa_inner, NO_QA_REGEX}; + + #[test] + fn regex() { + assert!(NO_QA_REGEX.is_match("# noqa")); + assert!(NO_QA_REGEX.is_match("# NoQA")); + + assert!(NO_QA_REGEX.is_match("# noqa: F401")); + assert!(NO_QA_REGEX.is_match("# NoQA: F401")); + assert!(NO_QA_REGEX.is_match("# noqa: F401, E501")); + + assert!(NO_QA_REGEX.is_match("# noqa:F401")); + assert!(NO_QA_REGEX.is_match("# NoQA:F401")); + assert!(NO_QA_REGEX.is_match("# noqa:F401, E501")); + } #[test] fn modification() -> Result<()> {