在运行我的pytests的过程中,从factory-boy得到了以下异常:
def generate(self, params):
> locale = params.pop('locale')
E KeyError: 'locale'如何解决这个问题?几天前一切正常,我的代码没有改变。
下面是代码示例:
import factory
from django.db import models
class MyModel(models.Model):
name = models.CharField(max_length=100)
price = models.PositiveIntegerField()
is_cheat = models.BooleanField()
class MyModelFactory(factory.django.DjangoModelFactory):
class Meta:
model = MyModel
name = factory.Faker("name")
is_cheap = factory.Faker("boolean")
price = factory.Maybe("is_cheap", yes_declaration=factoryFaker("pyint", max_value=10), no_declaration=factory.Faker("pyint", min_value=100))发布于 2020-10-22 00:44:28
在faker.py中,我看到.pop()中没有默认值
def generate(self, params):
locale = params.pop('locale') # <-- Issue occurs here
subfaker = self._get_faker(locale)
return subfaker.format(self.provider, **params)但不确定它是否应该在那里。factory-boy作者的Here is the comment,并对情况进行了解释。
看起来3.1.0中有一个错误,降级到应该会对有所帮助。至少是暂时的,因为他们还没有解决这个问题。
https://stackoverflow.com/questions/64468133
复制相似问题