在Django setUp()单元测试中使用factory_boy时出现“ StopIteration”异常

时间:2018-10-23 16:32:44

标签: python django django-unittest factory-boy

我有以下工厂:

myObj.put("MYNEWKEY",myObj.get("MYKEY");
myObj.remove("MYKEY");

我正在尝试编写一个测试,例如:

import org.json.JSONArray;
import org.json.JSONObject;

但是,每次我运行测试时,都会导致“ StopIteration”错误。 这是完整的堆栈跟踪:

class ContactFactory(DjangoModelFactory):
    name = Faker('company')
    industry = Iterator(Industry.objects.all())

    class Meta:
        model = 'sales.contact'

    @post_generation
        def requested_devices(self, create, extracted, **kwargs):
            if create:
              self.requested_devices.add(MSize.objects.first())

如果我将ContactFactory()移出类,则错误消失。 我想念什么吗?还是工厂男孩或Django的错误?

(我正在使用factory_boy == 2.11.1和django == 2.1.2)

1 个答案:

答案 0 :(得分:0)

按照@dirkgroten的建议,其中一个字段返回一个空的查询集。这是错误的根本原因。