Skip to content

Commit 0aaf4db

Browse files
committed
Fix to_dict for IntEnum
1 parent f6128be commit 0aaf4db

File tree

3 files changed

+11
-2
lines changed

3 files changed

+11
-2
lines changed

mongoengine_plus/models/helpers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ def mongo_to_dict(obj, exclude_fields: list = None) -> dict:
7070
elif isinstance(obj._fields[field_name], DictField):
7171
return_data[field_name] = data
7272
elif isinstance(obj._fields[field_name], EnumField):
73-
return_data[field_name] = data.value if data else None
73+
return_data[field_name] = data.value if data is not None else None
7474
elif isinstance(obj._fields[field_name], LazyReferenceField):
7575
return_data[f'{field_name}_uri'] = (
7676
f'/{data._DBRef__collection}/{data.id}' if data else None

mongoengine_plus/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '0.1.0'
1+
__version__ = '0.1.1.dev0'

tests/models/test_helpers.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ class EnumType(Enum):
3030
member = 'name'
3131

3232

33+
class IntEnum(int, Enum):
34+
exito = 0
35+
invalid = 1
36+
37+
38+
3339
class Embedded(EmbeddedDocument):
3440
meta = {'allow_inheritance': True}
3541
name = StringField()
@@ -59,6 +65,7 @@ class TestModel(Document):
5965
lazzy_field = LazyReferenceField(Reference)
6066
lazzy_list_field = ListField(LazyReferenceField(Reference))
6167
generic_lazzy_field = GenericLazyReferenceField()
68+
code = EnumField(IntEnum)
6269

6370
__test__ = False
6471

@@ -71,6 +78,7 @@ def test_mongo_to_dict():
7178
lazzy_list_field=[reference],
7279
embedded_field=Embedded(name='Peter'),
7380
heritage_field=HeritageEmbedded(name='some', lastname='other'),
81+
code=IntEnum.exito,
7482
)
7583
model.save()
7684
model_dict = mongo_to_dict(model, exclude_fields=['str_field'])
@@ -95,3 +103,4 @@ def test_mongo_to_dict():
95103
'name': 'some',
96104
'lastname': 'other',
97105
}
106+
assert model_dict['code'] == 0

0 commit comments

Comments
 (0)