2012-07-20 26 views
6

Estoy intentando suprimir todas las advertencias de sqlalchemy mientras ejecuto mi prueba con nosetest. He leído Turn off a warning in sqlalchemyDesactivar las advertencias de sqlalchemy en nosetests

.............................../Users/ca/.pythonbrew/venvs/Python-2.7.3/api/lib/python2.7/site-packages/SQLAlchemy-0.7.5-py2.7-macosx-10.7-x86_64.egg/sqlalchemy/engine/default.py:330: Warning: Field 'random_id' doesn't have a default value 
cursor.execute(statement, parameters) 

He incluido esto en el archivo de mi paquete __init__.py:

def setup_package(): 
    """Setup the test during the whole session. 

    Run by nosetests 
    """ 
    # Suppress all SQLAlchemy warnings 
    warnings.filterwarnings("ignore", category=sa_exc.SAWarning) 

Con las importaciones adecuados. Sé que está dirigido por pruebas de nariz porque probé otras cosas que provocaron un error. Lo único es que no tiene ningún efecto en absoluto. Las advertencias todavía se muestran.

¿Alguna idea?

Gracias!

+0

No creo que el aviso de "valor predeterminado" sea de la categoría 'SAWarning', sino' Warning'. Yo uso lo siguiente: 'ignorar: campo '\ w +' no tiene un valor predeterminado: Advertencia' y parece funcionar – tutuDajuju

Respuesta

4

Parece que la nariz sobrescribe cualquier cosa que se con:

warnings.filterwarnings("ignore") 

Sin embargo, puede filtrar advertencias durante la prueba de la nariz con una opción de línea de comandos para la nariz. e.g .:

$ nosetests --logging-filter=SAWarning 

Encontré que esto todavía puede no funcionar en todas las circunstancias. Si este es el caso, puede intentar:

$ python -W ignore `which nosetests` 
+0

Lo mismo se puede hacer en Pytest (más reciente 3.1) con un argumento' pytest -W 'para Pytest o como una propiedad en pytest.ini; ver [documentos aquí] (https://docs.pytest.org/en/latest/warnings.html). – tutuDajuju

Cuestiones relacionadas