У меня есть несколько вложенных объектов google.proto.message, и я пытаюсь переопределить атрибут глубоко внутри родительской модели при создании тестовых данных с помощью factoryboy. Некоторые дочерние сообщения создаются с помощью lazy_attribute, который содержит лог c для заполнения их другими объектами. Я воспроизвел проблему, которая возникла у меня в factoryboy, на гораздо более простом примере с использованием attrs
моделей.
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
Спасибо за любые ваши предложения!