Skip to content

Commit ad04e03

Browse files
committed
Added unit tests
1 parent 69df5b8 commit ad04e03

File tree

5 files changed

+77
-1
lines changed

5 files changed

+77
-1
lines changed

.travis.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ jobs:
1818
- stage: test
1919
script:
2020
- python -m pylint ./*/*.py
21+
- pytest --cov pylintfileheader pylintfileheadertest
2122
- stage: bundle
2223
script:
2324
- cp ThirdPartyNotices.txt ./pylintfileheader
@@ -36,3 +37,6 @@ jobs:
3637
skip_cleanup: true
3738
on:
3839
tags: true
40+
41+
after_success:
42+
- codecov

.vscode/settings.json

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,16 @@
99
"msgs",
1010
"rcfile"
1111
],
12-
"files.eol": "\n"
12+
"cSpell.ignorePaths": [
13+
"**/.git/**",
14+
".vscode",
15+
".pylintrc"
16+
],
17+
"files.eol": "\n",
18+
"python.unitTest.pyTestArgs": [
19+
"pylintfileheadertest"
20+
],
21+
"python.unitTest.unittestEnabled": false,
22+
"python.unitTest.nosetestsEnabled": false,
23+
"python.unitTest.pyTestEnabled": true
1324
}

pylintfileheadertest/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# ---------------------------------------------------------------------------------------------
2+
# Copyright (c) Leo Hanisch. All rights reserved.
3+
# Licensed under the MIT License. See LICENSE.txt in the project root for license information.
4+
# ---------------------------------------------------------------------------------------------
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# ---------------------------------------------------------------------------------------------
2+
# Copyright (c) Leo Hanisch. All rights reserved.
3+
# Licensed under the MIT License. See LICENSE.txt in the project root for license information.
4+
# ---------------------------------------------------------------------------------------------
5+
6+
# pylint: disable=invalid-name,unused-variable
7+
from unittest.mock import MagicMock
8+
import pylint.testutils
9+
from pylintfileheader.file_header_checker import FileHeaderChecker
10+
11+
12+
class TestFileHeaderChecker(pylint.testutils.CheckerTestCase):
13+
CHECKER_CLASS = FileHeaderChecker
14+
CONFIG = {'file_header': '# Valid\n# Header'}
15+
16+
def test_valid_header_no_message_added(self):
17+
"""Test whether no message is added, when the file header is valid."""
18+
19+
node_mock = MagicMock()
20+
node_mock.stream.return_value.__enter__.return_value.read.return_value.decode.return_value = '# Valid\n# Header'
21+
with self.assertNoMessages():
22+
self.checker.process_module(node_mock)
23+
24+
def test_invalid_header_message_added(self):
25+
"""Test whether no message is added, when the file header is valid."""
26+
27+
node_mock = MagicMock()
28+
node_mock.stream.return_value.__enter__.return_value.read.return_value.decode.return_value = '# Invalid\n# Header'
29+
with self.assertAddsMessages(pylint.testutils.Message(
30+
msg_id='invalid-file-header',
31+
line=1,
32+
args='# Valid\n# Header')):
33+
self.checker.process_module(node_mock)
34+
35+
def test_valid_header_not_at_top_message_added(self):
36+
"""Test whether no message is added, when the file header is valid."""
37+
38+
node_mock = MagicMock()
39+
node_mock.stream.return_value.__enter__.return_value.read.return_value.decode.return_value = 'print(\'hello\')\n# Valid\n# Header'
40+
with self.assertAddsMessages(pylint.testutils.Message(
41+
msg_id='invalid-file-header',
42+
line=1,
43+
args='# Valid\n# Header')):
44+
self.checker.process_module(node_mock)
45+
46+
def test_config_empty_no_message_added(self):
47+
"""When the `file-header` option is not set, no message should be added."""
48+
49+
self.checker.config.file_header = None
50+
node_mock = MagicMock()
51+
node_mock.stream.return_value.__enter__.return_value.read.return_value.decode.return_value = '# Invalid\n# Header'
52+
with self.assertNoMessages():
53+
self.checker.process_module(node_mock)

requirements-dev.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
-r requirements.txt
22

3+
codecov
4+
mock
35
pylint
46
pylint-quotes
57
pylintfileheader
8+
pytest
9+
pytest-cov
610
# Requires those versions because of https://stackoverflow.com/a/26737258/6925187
711
setuptools>=38.6.0
812
twine>=1.11.0

0 commit comments

Comments
 (0)