Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions crates/ruff_linter/resources/test/fixtures/pep8_naming/N802.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,3 +84,25 @@ def do_GET(self):
def dont_GET(self):
pass


from http.server import CGIHTTPRequestHandler


class MyCGIRequestHandler(CGIHTTPRequestHandler):
def do_OPTIONS(self):
pass

def dont_OPTIONS(self):
pass


from http.server import SimpleHTTPRequestHandler


class MySimpleRequestHandler(SimpleHTTPRequestHandler):
def do_OPTIONS(self):
pass

def dont_OPTIONS(self):
pass

Original file line number Diff line number Diff line change
Expand Up @@ -100,15 +100,21 @@ pub(crate) fn invalid_function_name(
return;
}

// Ignore the do_* methods of the http.server.BaseHTTPRequestHandler class
// Ignore the do_* methods of the http.server.BaseHTTPRequestHandler class and its subclasses
if name.starts_with("do_")
&& parent_class.is_some_and(|class| {
any_base_class(class, semantic, &mut |superclass| {
let qualified = semantic.resolve_qualified_name(superclass);
qualified.is_some_and(|name| {
matches!(
name.segments(),
["http", "server", "BaseHTTPRequestHandler"]
[
"http",
"server",
"BaseHTTPRequestHandler"
| "CGIHTTPRequestHandler"
| "SimpleHTTPRequestHandler"
]
)
})
})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,3 +55,21 @@ N802.py:84:9: N802 Function name `dont_GET` should be lowercase
| ^^^^^^^^ N802
85 | pass
|

N802.py:95:9: N802 Function name `dont_OPTIONS` should be lowercase
|
93 | pass
94 |
95 | def dont_OPTIONS(self):
| ^^^^^^^^^^^^ N802
96 | pass
|

N802.py:106:9: N802 Function name `dont_OPTIONS` should be lowercase
|
104 | pass
105 |
106 | def dont_OPTIONS(self):
| ^^^^^^^^^^^^ N802
107 | pass
|
Loading