2012-09-01 17 views

cevap

1

yılında

Tnx

keresinde Pyflakes kullanan bir test jeneratör yazdı. Bu bir Burun eklentisi değil, ama bu benim ihtiyacı için yeterince yakındı: your_application içeren dizinin içindeki her Python dosyası için

import os 
import _ast 

from pyflakes import checker 

import your_application 

TOP = os.path.dirname(os.path.dirname(your_application.__file__)) 

class PyflakesError(AssertionError): 
    def __str__(self): 
     path = self.args[0] 
     messages = self.args[1] 
     messages.sort(key=lambda m: m.lineno) 
     return 'checking %s\n' % path + '\n'.join(map(str, messages)) 

def check(path): 
    code = open(os.path.join(TOP, path)).read() 
    tree = compile(code, path, "exec", _ast.PyCF_ONLY_AST) 
    w = checker.Checker(tree, path) 
    if w.messages: 
     raise PyflakesError(path, w.messages) 

def test(): 
    for root, dirs, files in os.walk(TOP): 
     for name in files: 
      if not name.endswith('.py'): 
       continue 
      yield check, os.path.relpath(os.path.join(root, name), TOP) 

     def is_package(d): 
      return os.path.exists(os.path.join(root, d, '__init__.py')) 
     dirs[:] = filter(is_package, dirs) 

test fonksiyon verimleri test durumları. Diğer dizinleri test etmek için TOP'u gerektiği gibi ayarlayabilirsiniz.

İlgili konular