¿Existe un marco de prueba de unidades de estilo BDD preferido para Python?

Me preguntaba si existen marcos de prueba de unidad ‘describe-it’ de estilo BDD para Python que se mantengan y estén listos para la producción. He encontrado una descripción , pero parece que no se mantiene y no tiene documentación. También descubrí que llegó a 1.0, pero parece que solo agrega azúcar sintáctica en lugar de escribir aserciones. Lo que realmente estoy buscando es algo similar a RSpec y Jasmine que me permite configurar suites de prueba. La syntax describe-it que permite probar varios casos de una función. Frente a una estructura de aserción clásica que prueba cada función una vez y tiene múltiples aserciones para probar múltiples casos. Esto rompe el aislamiento de una prueba unitaria. Si hay una manera de lograr algo similar con las pruebas de estilo de afirmación, agradecería cualquier consejo sobre cómo hacerlo. A continuación se muestran ejemplos simples de ambos estilos:

foo.py

class Foo(): def bar(self, x): return x + 1 

BDD-Style / Describe-It

test_foo.py

 describe Foo: describe self.bar: before_each: f = Foo() it 'returns 1 more than its arguments value': expect f.bar(3) == 4 it 'raises an error if no argument is passed in': expect f.bar() raiseError 

Unittest / estilo de afirmación

test_foo.py

  class Foo(): def test_bar(x): x = 3 self.assertEqual(4) x = None self.assertRaises(Error) 

Si estás esperando algo exactamente como rspec / capybara en python, me temo que te decepcionará. El problema es que Ruby te ofrece mucha más libertad que Python (con mucho más soporte para clases abiertas y metaprogtwigción extensa). Tengo que decir que hay una diferencia fundamental entre la filosofía de python y ruby.

Todavía hay algunos buenos marcos de prueba como Cucumber ( https://github.com/cucumber/cucumber/wiki/Python ) y lechuga ( http://lettuce.it/ ) en caso de que estés buscando una solución Python pura.