From e73055432c5a28dc23e7440f5abb992335efe5c7 Mon Sep 17 00:00:00 2001 From: Anthony Sottile Date: Wed, 20 Dec 2017 12:43:45 -0800 Subject: [PATCH] Only skip a file if `# flake8: noqa` is on a line by itself --- src/flake8/processor.py | 16 ++++++++++++---- tests/unit/test_file_processor.py | 1 + 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/flake8/processor.py b/src/flake8/processor.py index 3827a26..d54a82f 100644 --- a/src/flake8/processor.py +++ b/src/flake8/processor.py @@ -106,7 +106,7 @@ class FileProcessor(object): @property def file_tokens(self): - """The complete set of tokens for a file. + """Return the complete set of tokens for a file. Accessing this attribute *may* raise an InvalidSyntax exception. @@ -334,7 +334,7 @@ class FileProcessor(object): def should_ignore_file(self): # type: () -> bool - """Check if ``# flake8: noqa`` is in the file to be ignored. + """Check if ``flake8: noqa`` is in the file to be ignored. :returns: True if a line matches :attr:`defaults.NOQA_FILE`, @@ -342,8 +342,16 @@ class FileProcessor(object): :rtype: bool """ - ignore_file = defaults.NOQA_FILE.search - return any(ignore_file(line) for line in self.lines) + if any(defaults.NOQA_FILE.match(line) for line in self.lines): + return True + elif any(defaults.NOQA_FILE.search(line) for line in self.lines): + LOG.warning( + 'Detected `flake8: noqa` on line with code. To ignore an ' + 'error on a line use `noqa` instead.', + ) + return False + else: + return False def strip_utf_bom(self): # type: () -> NoneType diff --git a/tests/unit/test_file_processor.py b/tests/unit/test_file_processor.py index a628cfd..312827b 100644 --- a/tests/unit/test_file_processor.py +++ b/tests/unit/test_file_processor.py @@ -46,6 +46,7 @@ def test_strip_utf_bom(first_line): (['#!/usr/bin/python', '# flake8: noqa', 'a = 1'], True), (['# flake8: noqa', '#!/usr/bin/python', 'a = 1'], True), (['#!/usr/bin/python', 'a = 1', '# flake8: noqa'], True), + (['#!/usr/bin/python', 'a = 1 # flake8: noqa'], False), ]) def test_should_ignore_file(lines, expected): """Verify that we ignore a file if told to."""