Skip to content

Commit 897bbed

Browse files
committed
adding tests for new fields
1 parent 3fc2956 commit 897bbed

File tree

3 files changed

+63
-0
lines changed

3 files changed

+63
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
*.pyc
2+
build/
23
venv/

tests/__init__.py

Whitespace-only changes.

tests/test_enums.py

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
try:
2+
import unittest2 as unittest
3+
except ImportError:
4+
import unittest
5+
6+
from enum import Enum
7+
8+
class IntEnum(Enum):
9+
FIRST = 1
10+
SECOND = 2
11+
12+
class StringEnum(Enum):
13+
FIRST = 'FIRST'
14+
SECOND = 'SECOND'
15+
16+
from mongoengine import Document, connect, connection
17+
from extras_mongoengine.fields import StringEnumField, IntEnumField
18+
19+
20+
class EnumFieldTestCase(unittest.TestCase):
21+
22+
def setUp(self):
23+
connect(db='extrasmongoenginetest')
24+
self.db = connection.get_db()
25+
26+
class Doc(Document):
27+
string_enum = StringEnumField(StringEnum, default=StringEnum.FIRST)
28+
int_enum = IntEnumField(IntEnum, default=IntEnum.FIRST)
29+
self.document_class = Doc
30+
self.doc = self.document_class()
31+
self.doc.save()
32+
33+
def tearDown(self):
34+
for collection in self.db.collection_names():
35+
if 'system.' in collection:
36+
continue
37+
self.db.drop_collection(collection)
38+
39+
def test_creation(self):
40+
self.assertTrue(self.doc.string_enum is StringEnum.FIRST)
41+
self.assertTrue(self.doc.int_enum is IntEnum.FIRST)
42+
43+
def test_read(self):
44+
doc = self.document_class.objects.first()
45+
self.assertTrue(doc.string_enum is StringEnum.FIRST)
46+
self.assertTrue(doc.int_enum is IntEnum.FIRST)
47+
48+
def test_write_and_read(self):
49+
doc = self.document_class.objects.first()
50+
doc.string_enum = StringEnum.SECOND
51+
doc.int_enum = IntEnum.SECOND
52+
doc.save()
53+
self.assertTrue(doc.string_enum is StringEnum.SECOND)
54+
self.assertTrue(doc.int_enum is IntEnum.SECOND)
55+
56+
doc = self.document_class.objects.first()
57+
self.assertTrue(doc.string_enum is StringEnum.SECOND)
58+
self.assertTrue(doc.int_enum is IntEnum.SECOND)
59+
60+
61+
if __name__ == '__main__':
62+
unittest.main()

0 commit comments

Comments
 (0)