def test_strict_embedded_document(self):
@self.instance.register
class StrictEmbeddedDoc(EmbeddedDocument):
a = fields.IntField()
@self.instance.register
class NonStrictEmbeddedDoc(EmbeddedDocument):
a = fields.IntField()
class Meta:
strict = False
data_with_bonus = {'a': 42, 'b': 'foo'}
with pytest.raises(exceptions.UnknownFieldInDBError):
StrictEmbeddedDoc.build_from_mongo(data_with_bonus)
non_strict_doc = NonStrictEmbeddedDoc.build_from_mongo(data_with_bonus)
assert non_strict_doc.to_mongo() == data_with_bonus
non_strict_doc.dump() == {'a': 42}
with pytest.raises(exceptions.ValidationError) as exc:
NonStrictEmbeddedDoc(a=42, b='foo')
assert exc.value.messages == {'_schema': ['Unknown field name b.']}
评论列表
文章目录