Sandy Carter (http://www.savoirfairelinux.com) has proposed merging lp:~savoirfairelinux-openerp/lp-community-utils/branch_pep8 into lp:lp-community-utils with lp:~savoirfairelinux-openerp/lp-community-utils/nag_refactor as a prerequisite.
Requested reviews: OpenERP Community Reviewer/Maintainer (openerp-community-reviewer) For more details, see: https://code.launchpad.net/~savoirfairelinux-openerp/lp-community-utils/branch_pep8/+merge/205260 Added library for branching and running Flake8/PEP8 checks on changed files in MP Added run option -t --test-pep8 argument to activate this functionality. test-pep8 will ignore ocb-addons and ocb-server as it takes too long to branch. This is hard coded, I am willing to move it to argument list if there is demand for it. -- https://code.launchpad.net/~savoirfairelinux-openerp/lp-community-utils/branch_pep8/+merge/205260 Your team Savoir-faire Linux' OpenERP is subscribed to branch lp:~savoirfairelinux-openerp/lp-community-utils/nag_refactor.
=== added file 'branch_mp_pep8.py' --- branch_mp_pep8.py 1970-01-01 00:00:00 +0000 +++ branch_mp_pep8.py 2014-02-06 21:08:54 +0000 @@ -0,0 +1,83 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2013 Savoir-faire Linux +# (<http://www.savoirfairelinux.com>). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +import os +import tempfile +import shutil + +from bzrlib.branch import Branch +from bzrlib.plugin import load_plugins +from flake8 import main as flake8 +from flake8 import engine + +load_plugins() + + +def branch_pep8(nag): + exit_code = 0 + if nag.project_name in ['ocb-addons', 'ocb-server', 'ocb-web']: + print("%s takes too long to branch, skipped..." % nag.project_name) + return exit_code + + # Find files changed to test on which to test PEP8 + changed_files = nag.proposal.preview_diff.diffstat.keys() + changed_py_files = sorted([i for i in changed_files if i.endswith(".py")]) + changed_init_files = [i for i in changed_py_files if i.endswith("__init__.py")] + changed_oe_files = [i for i in changed_py_files if i.endswith("__openerp__.py")] + + # Branch MP locally + mp_branch_name = nag.proposal.source_branch.bzr_identity + mp_branch = Branch.open(mp_branch_name) + previousDir = os.getcwd() + branch_dir = tempfile.mkdtemp() + os.chdir(branch_dir) + mp_branch.bzrdir.sprout(branch_dir).open_branch() + try: + # Create Flake8 style guides + flake8_style = engine.get_style_guide( + parse_argv=False, config_file=flake8.DEFAULT_CONFIG) + flake8_style.options.exclude += ['__init__.py', '__openerp__.py'] + flake8_style.options.ignore += ('E501', ) + flake8_style_init = engine.get_style_guide( + parse_argv=False, config_file=flake8.DEFAULT_CONFIG) + flake8_style_init.options.ignore += ('E501', 'F401', ) + flake8_style_openerp = engine.get_style_guide( + parse_argv=False, config_file=flake8.DEFAULT_CONFIG) + flake8_style_openerp.options.ignore += ('E501', ) + + # Run Flake8 + report = flake8_style_init.check_files(paths=changed_init_files) + exit_code = exit_code or flake8.print_report(report, flake8_style) + report = flake8_style_openerp.check_files(paths=changed_oe_files) + exit_code = exit_code or flake8.print_report(report, flake8_style) + report = flake8_style.check_files(paths=changed_py_files) + exit_code = exit_code or flake8.print_report(report, flake8_style) + + except: + pass + + finally: + # Cleanup + os.chdir(previousDir) + shutil.rmtree(branch_dir) + + return exit_code === modified file 'openerp-nag' --- openerp-nag 2014-02-06 21:08:54 +0000 +++ openerp-nag 2014-02-06 21:08:54 +0000 @@ -50,6 +50,7 @@ gen_project_nags, DefaultPolicy, ) +from branch_mp_pep8 import branch_pep8 consumer_name = 'OpenERP Community Reviewers Nagging Scripts' @@ -91,6 +92,9 @@ group.add_argument( '--production', action='store_const', const='production', dest='service_root', help="Use production launchpad instance") + group.add_argument( + '-t', '--test-pep8', action='store_true', + help="Test branch using Flake8") parser.set_defaults(anonymous=True, service_root='production') args = parser.parse_args() if not args.project and not args.projects_file: @@ -134,6 +138,8 @@ index1=index1, age=nag.age, person=nag.person, action=nag.action, subject=nag.subject, project=nag.project_name)) + if args.test_pep8: + branch_pep8(nag) if __name__ == "__main__":
-- Mailing list: https://launchpad.net/~savoirfairelinux-openerp Post to : [email protected] Unsubscribe : https://launchpad.net/~savoirfairelinux-openerp More help : https://help.launchpad.net/ListHelp

