Skip to content

Commit c713bf1

Browse files
author
Sergey Vilgelm
committed
Add extra tests
1 parent bc5ad36 commit c713bf1

File tree

1 file changed

+43
-2
lines changed

1 file changed

+43
-2
lines changed

pylintfileheadertest/file_header_checker_test.py

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,13 @@
44
# ---------------------------------------------------------------------------------------------
55

66
# pylint: disable=invalid-name,unused-variable
7+
import re
8+
import sys
9+
710
from mock import MagicMock
811
import pylint.testutils
12+
import pytest
13+
914
from pylintfileheader.file_header_checker import FileHeaderChecker
1015

1116

@@ -71,13 +76,49 @@ class TestFileHeaderCheckerNoConfig(pylint.testutils.CheckerTestCase):
7176
def test_no_message_added(self):
7277
"""When the `file-header` option is not set, no message should be added."""
7378

74-
self.checker.config.file_header = None
7579
node_mock = MagicMock()
7680
node_mock.stream.return_value.__enter__.return_value.read.return_value.decode.return_value = '# Invalid\n# Header'
7781
with self.assertNoMessages():
7882
self.checker.process_module(node_mock)
7983

8084

81-
class TestFileHeaderCheckerPath(TestFileHeaderChecker):
85+
class TestFileHeaderCheckerPathMain(TestFileHeaderChecker):
8286
CHECKER_CLASS = FileHeaderChecker
8387
CONFIG = {'file_header_path': 'pylintfileheadertest/header.txt'}
88+
89+
90+
class TestFileHeaderCheckerPathExtra:
91+
CHECKER_CLASS = FileHeaderChecker
92+
93+
def get_checker(self, config):
94+
linter = pylint.testutils.UnittestLinter()
95+
checker = self.CHECKER_CLASS(linter)
96+
for key, value in config.items():
97+
setattr(checker.config, key, value)
98+
return checker
99+
100+
def test_incorrect_regex(self):
101+
with pytest.raises(re.error):
102+
self.get_checker({
103+
'file_header': '.+)',
104+
}).open()
105+
106+
def test_wrong_path(self):
107+
if sys.version_info[0] < 3:
108+
excp = IOError
109+
else:
110+
excp = FileNotFoundError
111+
112+
with pytest.raises(excp):
113+
self.get_checker({
114+
'file_header_path': 'foo-bar.txt',
115+
}).open()
116+
117+
def test_both_options(self):
118+
# no error expected since the file_header is used
119+
checker = self.get_checker({
120+
'file_header': '# Valid\n# Header',
121+
'file_header_path': 'foo-bar.txt',
122+
})
123+
checker.open()
124+
assert checker.header == '# Valid\n# Header'

0 commit comments

Comments
 (0)