From 352a7250b7f2f86d22a8172583b100e748fb70f9 Mon Sep 17 00:00:00 2001 From: Ian Cordasco Date: Fri, 28 Oct 2016 07:09:43 -0500 Subject: [PATCH] Handle empty stdin-display-name values Apparently, some folks pass an empty string to --stdin-display-name. To avoid the errors this causes, we need to handle it appropriately. Closes #235 --- src/flake8/processor.py | 2 +- tests/unit/test_file_processor.py | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/flake8/processor.py b/src/flake8/processor.py index 8490092..2757e8f 100644 --- a/src/flake8/processor.py +++ b/src/flake8/processor.py @@ -288,7 +288,7 @@ class FileProcessor(object): # type: () -> List[str] """Read the lines for this file checker.""" if self.filename is None or self.filename == '-': - self.filename = self.options.stdin_display_name + self.filename = self.options.stdin_display_name or 'stdin' lines = self.read_lines_from_stdin() else: lines = self.read_lines_from_filename() diff --git a/tests/unit/test_file_processor.py b/tests/unit/test_file_processor.py index 001a6ba..c534003 100644 --- a/tests/unit/test_file_processor.py +++ b/tests/unit/test_file_processor.py @@ -86,6 +86,18 @@ def test_read_lines_uses_display_name(stdin_get_value): assert file_processor.filename == 'display_name.py' +@mock.patch('flake8.utils.stdin_get_value') +def test_read_lines_ignores_empty_display_name(stdin_get_value): + """Verify that when processing stdin we use a display name if present.""" + stdin_value = mock.Mock() + stdin_value.splitlines.return_value = [] + stdin_get_value.return_value = stdin_value + file_processor = processor.FileProcessor('-', options_from( + stdin_display_name='' + )) + assert file_processor.filename == 'stdin' + + def test_line_for(): """Verify we grab the correct line from the cached lines.""" file_processor = processor.FileProcessor('-', options_from(), lines=[