【发布时间】:2020-01-11 18:38:56
【问题描述】:
我有一些嵌套的 google.proto.message 对象,并且在使用 factoryboy 制作测试数据时尝试覆盖父模型深处的属性。一些子消息是使用lazy_attribute 创建的,其中包含使用其他对象填充它们的逻辑。
我已经使用attrs 模型通过一个更简单的示例重现了我在 factoryboy 中遇到的问题。
class BookFactory(factory.Factory):
class Meta:
model = models.Book
class Params:
num_pages = 10
@factory.lazy_attribute
def pages(self):
return PageFactory.build_batch(self.num_pages)
book = BookFactory.build(
num_pages=3,
pages__0__content='mypage0',
)
# This fails. How do I override pages[0].content with a BookFactory attribute?
assert book.pages[0].content == 'mypage0'
我在https://repl.it/@TomGoBravo/lazyattributesubfactory 有一个失败的运行示例
感谢您的任何建议!
【问题讨论】:
标签: python factory-boy