Add testcase for issue #237
This commit is contained in:
parent
0d2e84b16b
commit
43327ea4e1
@ -3368,6 +3368,40 @@ class DocumentTest(unittest.TestCase):
|
|||||||
}
|
}
|
||||||
) ]), "1,2")
|
) ]), "1,2")
|
||||||
|
|
||||||
|
def test_complex_nesting_document_and_embeddeddocument(self):
|
||||||
|
class Macro(EmbeddedDocument):
|
||||||
|
value = DynamicField(default="UNDEFINED")
|
||||||
|
|
||||||
|
class Parameter(EmbeddedDocument):
|
||||||
|
macros = MapField(EmbeddedDocumentField(Macro))
|
||||||
|
|
||||||
|
def expand(self):
|
||||||
|
self.macros["test"] = Macro()
|
||||||
|
|
||||||
|
class Node(Document):
|
||||||
|
parameters = MapField(EmbeddedDocumentField(Parameter))
|
||||||
|
|
||||||
|
def expand(self):
|
||||||
|
self.flattened_parameter = {}
|
||||||
|
for parameter_name, parameter in self.parameters.iteritems():
|
||||||
|
parameter.expand()
|
||||||
|
|
||||||
|
class System(Document):
|
||||||
|
name = StringField(required=True)
|
||||||
|
nodes = MapField(ReferenceField(Node, dbref=False))
|
||||||
|
|
||||||
|
def save(self, *args, **kwargs):
|
||||||
|
for node_name, node in self.nodes.iteritems():
|
||||||
|
node.expand()
|
||||||
|
node.save(*args, **kwargs)
|
||||||
|
super(System, self).save(*args, **kwargs)
|
||||||
|
|
||||||
|
system = System(name="system")
|
||||||
|
system.save()
|
||||||
|
system.nodes["node"] = Node()
|
||||||
|
system.save()
|
||||||
|
system.nodes["node"].parameters["param"] = Parameter()
|
||||||
|
system.save()
|
||||||
|
|
||||||
class ValidatorErrorTest(unittest.TestCase):
|
class ValidatorErrorTest(unittest.TestCase):
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user