2012-09-01 20 views

Respuesta

1

una vez me escribió un generador de prueba que usa pyflakes. No es un plug-in de la nariz, pero era lo suficientemente cerca para mi necesidad:

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) 

Los casos de prueba rendimientos test de función para cada archivo de Python dentro del directorio que contiene your_application. Puede ajustar TOP según sea necesario para probar otros directorios.

Cuestiones relacionadas