¿Cómo compruebas en pytest que un código lanza ValueError?
Opciones
assert raises(ValueError)después de la llamadawith pytest.raises(ValueError): parse('x')(Opción correcta)try/exceptseguido deassert True@pytest.mark.errorencima del test
Respuesta
with pytest.raises(ValueError): parse("x")
Por qué
El test pasa solo si el código dentro del bloque with lanza ValueError; si no hay error, el test falla.
También puedes comprobar el mensaje: pytest.raises(ValueError, match="invalid").
Un try/except escrito a mano que no hace nada si no hay error pasaría en silencio y ocultaría bugs.
Recuerda
Esperar un error → with pytest.raises(...).