Skip to content

Commit a751ead

Browse files
authored
Enable module-level checks for B018 (#315)
1 parent 38e7fd8 commit a751ead

File tree

3 files changed

+30
-1
lines changed

3 files changed

+30
-1
lines changed

bugbear.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,10 @@ def visit_Call(self, node):
359359
self.check_for_b905(node)
360360
self.generic_visit(node)
361361

362+
def visit_Module(self, node):
363+
self.check_for_b018(node)
364+
self.generic_visit(node)
365+
362366
def visit_Assign(self, node):
363367
if len(node.targets) == 1:
364368
t = node.targets[0]
@@ -1117,7 +1121,6 @@ def visit_Lambda(self, node):
11171121
error = namedtuple("error", "lineno col message type vars")
11181122
Error = partial(partial, error, type=BugBearChecker, vars=())
11191123

1120-
11211124
B001 = Error(
11221125
message=(
11231126
"B001 Do not use {}, it also catches unexpected "

tests/b018_modules.py

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
"""
2+
Should emit:
3+
B018 - on lines 9-18
4+
"""
5+
6+
a = 2
7+
"str" # Str (no raise)
8+
f"{int}" # JoinedStr (no raise)
9+
1j # Number (complex)
10+
1 # Number (int)
11+
1.0 # Number (float)
12+
b"foo" # Binary
13+
True # NameConstant (True)
14+
False # NameConstant (False)
15+
None # NameConstant (None)
16+
[1, 2] # list
17+
{1, 2} # set
18+
{"foo": "bar"} # dict

tests/test_bugbear.py

+8
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,14 @@ def test_b018_classes(self):
275275
expected.append(B018(33, 4))
276276
self.assertEqual(errors, self.errors(*expected))
277277

278+
def test_b018_modules(self):
279+
filename = Path(__file__).absolute().parent / "b018_modules.py"
280+
bbc = BugBearChecker(filename=str(filename))
281+
errors = list(bbc.run())
282+
283+
expected = [B018(line, 0) for line in range(9, 19)]
284+
self.assertEqual(errors, self.errors(*expected))
285+
278286
def test_b019(self):
279287
filename = Path(__file__).absolute().parent / "b019.py"
280288
bbc = BugBearChecker(filename=str(filename))

0 commit comments

Comments
 (0)