Skip to content

Commit 04a4634

Browse files
authored
Merge pull request #4 from pkasprzyk/windows-compat
compatibility with Windows newline format
2 parents 6fe5f16 + f0945df commit 04a4634

File tree

3 files changed

+16
-8
lines changed

3 files changed

+16
-8
lines changed

pylintfileheader/file_header_checker.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
# Copyright (c) Leo Hanisch. All rights reserved.
33
# Licensed under the MIT License. See LICENSE.txt in the project root for license information.
44
# ---------------------------------------------------------------------------------------------
5-
65
import re
76
import sys
87

@@ -65,8 +64,8 @@ def __init__(self, linter=None):
6564
def open(self):
6665
self.header = self.config.file_header
6766
if not self.header and self.config.file_header_path:
68-
with open(self.config.file_header_path, 'r') as header_file:
69-
self.header = header_file.read()
67+
with open(self.config.file_header_path, 'rb') as header_file:
68+
self.header = header_file.read().decode('utf-8')
7069

7170
if self.header:
7271
if sys.version_info[0] < 3:

pylintfileheadertest/file_header_checker_test.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,14 @@
1616

1717
class TestFileHeaderChecker(pylint.testutils.CheckerTestCase):
1818
CHECKER_CLASS = FileHeaderChecker
19-
CONFIG = {'file_header': '# Valid\n# Header'}
19+
EXPECTED_HEADER = '# Valid\n# Header'
20+
CONFIG = {'file_header': EXPECTED_HEADER}
2021

2122
def test_valid_header_no_message_added(self):
2223
"""Test whether no message is added, when the file header is valid."""
2324

2425
node_mock = MagicMock()
25-
node_mock.stream.return_value.__enter__.return_value.read.return_value.decode.return_value = '# Valid\n# Header'
26+
node_mock.stream.return_value.__enter__.return_value.read.return_value.decode.return_value = self.EXPECTED_HEADER
2627
with self.assertNoMessages():
2728
self.checker.process_module(node_mock)
2829

@@ -34,7 +35,7 @@ def test_invalid_header_message_added(self):
3435
with self.assertAddsMessages(pylint.testutils.Message(
3536
msg_id='invalid-file-header',
3637
line=1,
37-
args='# Valid\n# Header')):
38+
args=self.EXPECTED_HEADER)):
3839
self.checker.process_module(node_mock)
3940

4041
def test_valid_header_not_at_top_message_added(self):
@@ -45,7 +46,7 @@ def test_valid_header_not_at_top_message_added(self):
4546
with self.assertAddsMessages(pylint.testutils.Message(
4647
msg_id='invalid-file-header',
4748
line=1,
48-
args='# Valid\n# Header')):
49+
args=self.EXPECTED_HEADER)):
4950
self.checker.process_module(node_mock)
5051

5152
def test_ignore_empty_files(self):
@@ -65,7 +66,7 @@ def test_do_not_ignore_empty_files(self):
6566
with self.assertAddsMessages(pylint.testutils.Message(
6667
msg_id='invalid-file-header',
6768
line=1,
68-
args='# Valid\n# Header')):
69+
args=self.EXPECTED_HEADER)):
6970
self.checker.process_module(node_mock)
7071

7172

@@ -87,6 +88,12 @@ class TestFileHeaderCheckerPathMain(TestFileHeaderChecker):
8788
CONFIG = {'file_header_path': 'pylintfileheadertest/header.txt'}
8889

8990

91+
class TestFileHeaderCheckerPathWindows(TestFileHeaderChecker):
92+
CHECKER_CLASS = FileHeaderChecker
93+
EXPECTED_HEADER = '# Valid\r\n# Header'
94+
CONFIG = {'file_header_path': 'pylintfileheadertest/windows_header.txt'}
95+
96+
9097
class TestFileHeaderCheckerPathExtra:
9198
CHECKER_CLASS = FileHeaderChecker
9299

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Valid
2+
# Header

0 commit comments

Comments
 (0)