improve EnumField Doc and add quick test

This commit is contained in:
Bastien Gérard
2020-11-01 14:05:58 +01:00
parent 2f4464ead5
commit 8ef7213426
2 changed files with 18 additions and 1 deletions

View File

@@ -1,5 +1,6 @@
from enum import Enum
from bson import InvalidDocument
import pytest
from mongoengine import *
@@ -105,3 +106,17 @@ class TestIntEnumField(MongoDBTestCase):
with pytest.raises(ValidationError, match="Value must be one of"):
ModelWithColor(color="wrong_type").validate()
class TestFunkyEnumField(MongoDBTestCase):
def test_enum_incompatible_bson_type_fails_during_save(self):
class FunkyColor(Enum):
YELLOW = object()
class ModelWithFunkyColor(Document):
color = EnumField(FunkyColor)
m = ModelWithFunkyColor(color=FunkyColor.YELLOW)
with pytest.raises(InvalidDocument, match="cannot encode object"):
m.save()