Skip to content

Commit

Permalink
[IMP] pylint-odoo: Adding support for parameters --ignore and --ignor…
Browse files Browse the repository at this point in the history
…e-patterns (#103)
  • Loading branch information
Jesus Zapata committed Jan 11, 2017
1 parent 5f9c304 commit 82feead
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 3 deletions.
19 changes: 16 additions & 3 deletions pylint_odoo/misc.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
from lxml import etree
from pylint.checkers import BaseChecker
from pylint.interfaces import IAstroidChecker
from pylint.utils import _basename_in_blacklist_re
from restructuredtext_lint import lint_file as rst_lint

from . import settings
Expand Down Expand Up @@ -67,14 +68,26 @@ def get_manifest_file(self, node_file):

def set_ext_files(self):
"""Create `self.ext_files` dictionary with {extension_file: [files]}
and exclude files using --ignore and --ignore-patterns parameters
"""
self.ext_files = {}
for root, _, filenames in os.walk(self.module_path, followlinks=True):
for filename in filenames:
fext = os.path.splitext(filename)[1].lower()
fname_rel = os.path.relpath(
os.path.join(root, filename), self.module_path)
self.ext_files.setdefault(fext, []).append(fname_rel)
fname = os.path.join(root, filename)
# If the file is within black_list_re is ignored
if _basename_in_blacklist_re(fname,
self.linter.config.black_list_re):
continue
# If the file is within ignores is ignored
find = False
for ignore in self.linter.config.black_list:
if ignore in fname:
find = True
break
if not find:
fname_rel = os.path.relpath(fname, self.module_path)
self.ext_files.setdefault(fext, []).append(fname_rel)

def set_caches(self):
# TODO: Validate if is a odoo module before and has checks enabled
Expand Down
21 changes: 21 additions & 0 deletions pylint_odoo/test/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,27 @@ def test_40_deprecated_modules(self):
real_errors = pylint_res.linter.stats['by_msg']
self.assertEqual(real_errors.items(), [('deprecated-module', 4)])

def test_50_ignore(self):
"""Test --ignore parameter """
extra_params = ['--ignore=test_module/res_users.xml',
'--disable=all',
'--enable=deprecated-openerp-xml-node']
pylint_res = self.run_pylint(self.paths_modules, extra_params)
real_errors = pylint_res.linter.stats['by_msg']
self.assertEqual(real_errors.items(),
[('deprecated-openerp-xml-node', 4)])

def test_60_ignore_patternls(self):
"""Test --ignore-patterns parameter """
extra_params = ['--ignore-patterns='
'.*\/test_module\/*\/.*xml$',
'--disable=all',
'--enable=deprecated-openerp-xml-node']
pylint_res = self.run_pylint(self.paths_modules, extra_params)
real_errors = pylint_res.linter.stats['by_msg']
self.assertEqual(real_errors.items(),
[('deprecated-openerp-xml-node', 3)])


if __name__ == '__main__':
unittest.main()

0 comments on commit 82feead

Please sign in to comment.