Sto provando a utilizzare factory_boy per aiutare a generare alcuni documenti MongoEngine per i miei test. Ho problemi a definire gli oggetti EmbeddedDocumentField
.Come si usa factory_boy per modellare un EmbeddedDocument MongoEngine?
Ecco la mia MongoEngine Document
:
class Comment(EmbeddedDocument):
content = StringField()
name = StringField(max_length=120)
class Post(Document):
title = StringField(required=True)
tags = ListField(StringField(), required=True)
comments = ListField(EmbeddedDocumentField(Comment))
Ecco la mia parzialmente completata factory_boy Factory
:
class CommentFactory(factory.Factory):
FACTORY_FOR = Comment
content = "Platinum coins worth a trillion dollars are great"
name = "John Doe"
class BlogFactory(factory.Factory):
FACTORY_FOR = Blog
title = "On Using MongoEngine with factory_boy"
tags = ['python', 'mongoengine', 'factory-boy', 'django']
comments = [factory.SubFactory(CommentFactory)] # this doesn't work
Delle idee come specificare il campo comments
? Il problema è che factory-boy tenta di creare il documento Comment
EmbeddedDocument.
È necessario includere EmbeddedDocumentFactory come il primo ragazzo ha incluso per creare la fabbrica per la fabbrica di documenti incorporati quando inizializziamo la fabbrica principale. –