在工厂男孩中重置工厂迭代器



由于工厂将值分配给工厂属性,因此无法对其调用 reset 。

但是,这有效:

CODE2_ITERATOR = Iterator(['PH', 'CN', 'SE', 'ES', 'DK' ])
class CountryFactory(DjangoModelFactory):
    class Meta:
    model = Country
    name = 'The Philippines'
    code2 = CODE2_ITERATOR
    phone = "63"

然后在您的tearDown方法中:

def tearDown(self):
    CODE2_ITERATOR.reset()

但肯定有更好的方法可以做到这一点吗?

字段声明通过类保持可用:

CountryFactory.code2.reset()

您还可以通过类的 _meta 属性访问工厂的声明对象:

CountryFactory._meta.declarations['code2'].reset()

最新更新