Skip to content

Commit 5ff3e04

Browse files
committed
Added test_func tests back in.
1 parent 2e692c6 commit 5ff3e04

File tree

3 files changed

+34
-27
lines changed

3 files changed

+34
-27
lines changed

pylint/test/test_func.py

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,63 +8,68 @@
88

99
"""functional/non regression tests for pylint"""
1010

11-
import unittest
1211
import sys
1312
import re
1413

15-
from os import getcwd
14+
import pytest
1615
from os.path import abspath, dirname, join
1716

18-
from pylint.testutils import (make_tests, LintTestUsingModule, LintTestUsingFile,
19-
LintTestUpdate, cb_test_gen, linter)
17+
from pylint.testutils import get_tests_info, LintTestUsingModule, LintTestUpdate
2018

2119
PY3K = sys.version_info >= (3, 0)
20+
SYS_VERS_STR = '%d%d%d' % sys.version_info[:3]
2221

2322
# Configure paths
2423
INPUT_DIR = join(dirname(abspath(__file__)), 'input')
2524
MSG_DIR = join(dirname(abspath(__file__)), 'messages')
2625

26+
FILTER_RGX = None
27+
UPDATE = False
28+
2729
# Classes
2830

2931
quote = "'" if sys.version_info >= (3, 3) else ''
3032

31-
def gen_tests(filter_rgx):
32-
if UPDATE:
33-
callbacks = [cb_test_gen(LintTestUpdate)]
34-
else:
35-
callbacks = [cb_test_gen(LintTestUsingModule)]
36-
tests = make_tests(INPUT_DIR, MSG_DIR, filter_rgx, callbacks)
37-
if UPDATE:
38-
return tests
3933

34+
def gen_tests(filter_rgx):
4035
if filter_rgx:
4136
is_to_run = re.compile(filter_rgx).search
4237
else:
4338
is_to_run = lambda x: 1
39+
tests = []
40+
for module_file, messages_file in (
41+
get_tests_info(INPUT_DIR, MSG_DIR, 'func_', '')
42+
):
43+
if not is_to_run(module_file) or module_file.endswith(('.pyc', "$py.class")):
44+
continue
45+
base = module_file.replace('func_', '').replace('.py', '')
46+
dependencies = get_tests_info(INPUT_DIR, MSG_DIR, base, '.py')
47+
tests.append((module_file, messages_file, dependencies))
48+
49+
if UPDATE:
50+
return tests
4451

4552
assert len(tests) < 196, "Please do not add new test cases here."
4653
return tests
4754

48-
# Create suite
49-
50-
FILTER_RGX = None
51-
UPDATE = False
52-
53-
def suite():
54-
return unittest.TestSuite([unittest.makeSuite(test, suiteClass=unittest.TestSuite)
55-
for test in gen_tests(FILTER_RGX)])
5655

56+
@pytest.mark.parametrize("module_file,messages_file,dependencies", gen_tests(FILTER_RGX))
57+
def test_functionality(module_file, messages_file, dependencies):
5758

58-
def load_tests(loader, tests, pattern):
59-
return suite()
59+
LT = LintTestUpdate() if UPDATE else LintTestUsingModule()
6060

61+
LT.module = module_file.replace('.py', '')
62+
LT.output = messages_file
63+
LT.depends = dependencies or None
64+
LT.INPUT_DIR = INPUT_DIR
65+
LT._test_functionality()
6166

62-
if __name__=='__main__':
67+
if __name__ == '__main__':
6368
if '-u' in sys.argv:
6469
UPDATE = True
6570
sys.argv.remove('-u')
6671

6772
if len(sys.argv) > 1:
6873
FILTER_RGX = sys.argv[1]
6974
del sys.argv[1]
70-
unittest.main(defaultTest='suite')
75+
pytest.main(sys.argv)

pylint/testutils.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,10 @@ class LintTestUsingModule(unittest.TestCase):
274274
_TEST_TYPE = 'module'
275275
maxDiff = None
276276

277+
def runTest(self):
278+
# This is a hack to make ./test/test_func.py work under pytest.
279+
pass
280+
277281
def shortDescription(self):
278282
values = {'mode' : self._TEST_TYPE,
279283
'input': self.module,

tox.ini

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,7 @@ setenv =
2121
COVERAGE_FILE = {toxinidir}/.coverage.{envname}
2222

2323
commands =
24-
# python -Wi {envsitepackagesdir}/coverage run -m unittest discover -s {envsitepackagesdir}/pylint/test/ -p {posargs:*test_*}.py
25-
# python -Wi {envsitepackagesdir}/coverage run -m pytest
26-
python -m pytest {envsitepackagesdir}/pylint/test/
24+
python -Wi {envsitepackagesdir}/coverage run -m pytest {envsitepackagesdir}/pylint/test/
2725

2826
; Transform absolute path to relative path
2927
; for compatibility with coveralls.io and fix 'source not available' error.

0 commit comments

Comments
 (0)