[darcs_pylint_check.py] vérifie que les fichiers pythons soient sans erreurs
Ignore-this: b7284fe63ba8c2ae12e078d6d870d496 darcs-hash:20090317210433-bd074-62820d2b0617c5dab9a4ac7169c92ada98647124.gz
This commit is contained in:
parent
90255b53ee
commit
3dac7d0653
1 changed files with 84 additions and 0 deletions
84
gestion/darcs_pylint_check.py
Executable file
84
gestion/darcs_pylint_check.py
Executable file
|
@ -0,0 +1,84 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
#
|
||||||
|
# Copyright (C) 2009 Antoine Durand-Gasselin
|
||||||
|
# Author: Antoine Durand-Gasselin <adg@crans.org>
|
||||||
|
#
|
||||||
|
|
||||||
|
import commands, os, sys
|
||||||
|
from affich_tools import cprint, ERREUR
|
||||||
|
|
||||||
|
EXCEPTIONS = ["./gestion/ldap_crans.py"]
|
||||||
|
|
||||||
|
|
||||||
|
def goto_darcs_root ():
|
||||||
|
while not os.path.exists('_darcs') and os.getcwd() != '/':
|
||||||
|
os.chdir('..')
|
||||||
|
if not os.path.exists('_darcs'):
|
||||||
|
cprint("Pas de dépôt darcs trouvé")
|
||||||
|
sys.exit(1)
|
||||||
|
cprint("Dans le repo darcs %s" % os.getcwd(), "bleu")
|
||||||
|
|
||||||
|
def darcs_modified ():
|
||||||
|
ret, msg = commands.getstatusoutput('darcs whatsnew -s')
|
||||||
|
if ret:
|
||||||
|
cprint(ERREUR)
|
||||||
|
print msg
|
||||||
|
changes = msg.split('\n')
|
||||||
|
python_files = []
|
||||||
|
for i in changes:
|
||||||
|
if i[0] in ['A', 'M'] and i.split()[1][-3:] == '.py':
|
||||||
|
python_files.append(i[2:].split()[0])
|
||||||
|
|
||||||
|
return python_files
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def pylint_check ():
|
||||||
|
files = darcs_modified()
|
||||||
|
erreurs = ""
|
||||||
|
will_fail = False
|
||||||
|
l = len(files)
|
||||||
|
f = 1
|
||||||
|
for file in files:
|
||||||
|
print
|
||||||
|
cprint (u"[%d/%d] Vérification de %s" % (f, l, file), "gras")
|
||||||
|
f += 1
|
||||||
|
ret, output = commands.getstatusoutput('pylint %s' % file)
|
||||||
|
msg = output.split('\n')
|
||||||
|
is_fatal = False
|
||||||
|
fatals = []
|
||||||
|
has_errors = False
|
||||||
|
errors = []
|
||||||
|
for i in msg:
|
||||||
|
if i[:2] == 'F:' :
|
||||||
|
is_fatal = True
|
||||||
|
fatals.append(i)
|
||||||
|
will_fail = True
|
||||||
|
if i[:2] == 'E:' :
|
||||||
|
has_errors = True
|
||||||
|
errors.append(i)
|
||||||
|
|
||||||
|
if is_fatal:
|
||||||
|
cprint ("%s a des erreurs fatales:" % file, 'rouge')
|
||||||
|
print '\n'.join([ 4*' '+i for i in fatals])
|
||||||
|
elif has_errors:
|
||||||
|
cprint ("%s est sûrement plein d'erreurs" % file, 'jaune')
|
||||||
|
print '\n'.join([ 4*' '+i for i in errors])
|
||||||
|
if file not in EXCEPTIONS:
|
||||||
|
will_fail = True
|
||||||
|
else:
|
||||||
|
cprint('Mais on s\'en fout: on sait que %s est trop sale' % file , 'rouge')
|
||||||
|
else:
|
||||||
|
cprint (' OK', 'vert')
|
||||||
|
|
||||||
|
if not will_fail:
|
||||||
|
ret, output = commands.getstatusoutput('pylint %s' % ' '.join(files))
|
||||||
|
print output
|
||||||
|
else:
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
goto_darcs_root()
|
||||||
|
pylint_check ()
|
Loading…
Add table
Add a link
Reference in a new issue