9
9
10
10
from fixtures import Base , PickleEmbedded , PickleTest
11
11
12
- from mongoengine import *
12
+ from mongoengine import (
13
+ connect , Q , CASCADE , NULLIFY , DENY ,
14
+ ValidationError , InvalidCollectionError , OperationError ,
15
+ StringField , IntField , BooleanField , DateTimeField , EmailField ,
16
+ ListField , MapField , DictField ,
17
+ ReferenceField , GenericReferenceField ,
18
+ Document , DynamicDocument , EmbeddedDocument , EmbeddedDocumentField )
13
19
from mongoengine .base import NotRegistered , InvalidDocumentError
14
20
from mongoengine .queryset import InvalidQueryError
15
21
from mongoengine .connection import get_db , register_db
@@ -177,10 +183,18 @@ def test_get_superclasses(self):
177
183
"""
178
184
class Animal (Document ):
179
185
meta = {'allow_inheritance' : True }
180
- class Fish (Animal ): pass
181
- class Mammal (Animal ): pass
182
- class Human (Mammal ): pass
183
- class Dog (Mammal ): pass
186
+
187
+ class Fish (Animal ):
188
+ pass
189
+
190
+ class Mammal (Animal ):
191
+ pass
192
+
193
+ class Human (Mammal ):
194
+ pass
195
+
196
+ class Dog (Mammal ):
197
+ pass
184
198
185
199
mammal_superclasses = {'Animal' : Animal }
186
200
self .assertEqual (Mammal ._superclasses , mammal_superclasses )
@@ -195,11 +209,20 @@ def test_external_superclasses(self):
195
209
"""Ensure that the correct list of sub and super classes is assembled.
196
210
when importing part of the model
197
211
"""
198
- class Animal (Base ): pass
199
- class Fish (Animal ): pass
200
- class Mammal (Animal ): pass
201
- class Human (Mammal ): pass
202
- class Dog (Mammal ): pass
212
+ class Animal (Base ):
213
+ pass
214
+
215
+ class Fish (Animal ):
216
+ pass
217
+
218
+ class Mammal (Animal ):
219
+ pass
220
+
221
+ class Human (Mammal ):
222
+ pass
223
+
224
+ class Dog (Mammal ):
225
+ pass
203
226
204
227
mammal_superclasses = {'Base' : Base , 'Base.Animal' : Animal }
205
228
self .assertEqual (Mammal ._superclasses , mammal_superclasses )
@@ -229,10 +252,18 @@ def test_polymorphic_queries(self):
229
252
"""
230
253
class Animal (Document ):
231
254
meta = {'allow_inheritance' : True }
232
- class Fish (Animal ): pass
233
- class Mammal (Animal ): pass
234
- class Human (Mammal ): pass
235
- class Dog (Mammal ): pass
255
+
256
+ class Fish (Animal ):
257
+ pass
258
+
259
+ class Mammal (Animal ):
260
+ pass
261
+
262
+ class Human (Mammal ):
263
+ pass
264
+
265
+ class Dog (Mammal ):
266
+ pass
236
267
237
268
Animal .drop_collection ()
238
269
@@ -294,8 +325,12 @@ class Employee(self.Person):
294
325
# Ensure that MRO error is not raised
295
326
class A (Document ):
296
327
meta = {'allow_inheritance' : True }
297
- class B (A ): pass
298
- class C (B ): pass
328
+
329
+ class B (A ):
330
+ pass
331
+
332
+ class C (B ):
333
+ pass
299
334
300
335
def test_allow_inheritance (self ):
301
336
"""Ensure that inheritance may be disabled on simple classes and that
@@ -768,6 +803,7 @@ def test_save(self):
768
803
self .assertEqual (person_obj ['name' ], 'Test User' )
769
804
self .assertEqual (person_obj ['age' ], 30 )
770
805
self .assertEqual (person_obj ['_id' ], person .id )
806
+
771
807
# Test skipping validation on save
772
808
class Recipient (Document ):
773
809
email = EmailField (required = True )
@@ -1047,7 +1083,6 @@ class Page(EmbeddedDocument):
1047
1083
class Site (Document ):
1048
1084
page = EmbeddedDocumentField (Page )
1049
1085
1050
-
1051
1086
Site .drop_collection ()
1052
1087
site = Site (page = Page (log_message = "Warning: Dummy message" ))
1053
1088
site .save ()
@@ -1253,12 +1288,14 @@ class Doc(Document):
1253
1288
({'embedded_field.list_field.2.string_field' : 'world' }, {}))
1254
1289
doc .save ()
1255
1290
doc = doc .reload (10 )
1256
- self .assertEquals (doc .embedded_field .list_field [2 ].string_field , 'world' )
1291
+ self .assertEquals (doc .embedded_field .list_field [2 ].string_field ,
1292
+ 'world' )
1257
1293
1258
1294
# Test multiple assignments
1259
1295
doc .embedded_field .list_field [2 ].string_field = 'hello world'
1260
1296
doc .embedded_field .list_field [2 ] = doc .embedded_field .list_field [2 ]
1261
- self .assertEquals (doc ._get_changed_fields (), ['embedded_field.list_field' ])
1297
+ self .assertEquals (doc ._get_changed_fields (),
1298
+ ['embedded_field.list_field' ])
1262
1299
self .assertEquals (
1263
1300
doc .embedded_field ._delta (),
1264
1301
({'list_field' : [
@@ -1314,12 +1351,16 @@ class Doc(Document):
1314
1351
[1 , 2 , {'hello' : 'world' }])
1315
1352
1316
1353
del (doc .embedded_field .list_field [2 ].list_field [2 ]['hello' ])
1317
- self .assertEquals (doc ._delta (), ({'embedded_field.list_field.2.list_field' : [1 , 2 , {}]}, {}))
1354
+ self .assertEquals (
1355
+ doc ._delta (),
1356
+ ({'embedded_field.list_field.2.list_field' : [1 , 2 , {}]}, {}))
1318
1357
doc .save ()
1319
1358
doc = doc .reload (10 )
1320
1359
1321
1360
del (doc .embedded_field .list_field [2 ].list_field )
1322
- self .assertEquals (doc ._delta (), ({}, {'embedded_field.list_field.2.list_field' : 1 }))
1361
+ self .assertEquals (
1362
+ doc ._delta (),
1363
+ ({}, {'embedded_field.list_field.2.list_field' : 1 }))
1323
1364
1324
1365
doc .save ()
1325
1366
doc = doc .reload (10 )
@@ -1413,7 +1454,8 @@ class Doc(Document):
1413
1454
int_field = IntField (db_field = 'db_int_field' )
1414
1455
dict_field = DictField (db_field = 'db_dict_field' )
1415
1456
list_field = ListField (db_field = 'db_list_field' )
1416
- embedded_field = EmbeddedDocumentField (Embedded , db_field = 'db_embedded_field' )
1457
+ embedded_field = EmbeddedDocumentField (
1458
+ Embedded , db_field = 'db_embedded_field' )
1417
1459
1418
1460
Doc .drop_collection ()
1419
1461
doc = Doc ()
@@ -1943,8 +1985,10 @@ def test_reverse_delete_rule_cascade_and_nullify_complex_field(self):
1943
1985
1944
1986
class BlogPost (Document ):
1945
1987
content = StringField ()
1946
- authors = ListField (ReferenceField (self .Person , reverse_delete_rule = CASCADE ))
1947
- reviewers = ListField (ReferenceField (self .Person , reverse_delete_rule = NULLIFY ))
1988
+ authors = ListField (ReferenceField (self .Person ,
1989
+ reverse_delete_rule = CASCADE ))
1990
+ reviewers = ListField (ReferenceField (self .Person ,
1991
+ reverse_delete_rule = NULLIFY ))
1948
1992
1949
1993
self .Person .drop_collection ()
1950
1994
BlogPost .drop_collection ()
@@ -1973,8 +2017,10 @@ def test_invalid_reverse_delete_rules_raise_errors(self):
1973
2017
def throw_invalid_document_error ():
1974
2018
class Blog (Document ):
1975
2019
content = StringField ()
1976
- authors = MapField (ReferenceField (self .Person , reverse_delete_rule = CASCADE ))
1977
- reviewers = DictField (field = ReferenceField (self .Person , reverse_delete_rule = NULLIFY ))
2020
+ authors = MapField (ReferenceField (self .Person ,
2021
+ reverse_delete_rule = CASCADE ))
2022
+ reviewers = DictField (field = ReferenceField (
2023
+ self .Person , reverse_delete_rule = NULLIFY ))
1978
2024
1979
2025
self .assertRaises (InvalidDocumentError , throw_invalid_document_error )
1980
2026
@@ -2043,8 +2089,8 @@ class BlogPost(Document):
2043
2089
post .save ()
2044
2090
2045
2091
# Delete the Person should be denied
2046
- self .assertRaises (OperationError , author .delete ) # Should raise denied error
2047
- self .assertEqual (len (BlogPost .objects ), 1 ) # No objects may have been deleted
2092
+ self .assertRaises (OperationError , author .delete ) # Should raise denied
2093
+ self .assertEqual (len (BlogPost .objects ), 1 ) # No objects deleted?
2048
2094
self .assertEqual (len (self .Person .objects ), 1 )
2049
2095
2050
2096
# Other users, that don't have BlogPosts must be removable, like normal
@@ -2364,15 +2410,16 @@ def __str__(self):
2364
2410
u"," .join ([str (b ) for b in
2365
2411
Book .objects .filter (Q (extra__a = bob ) |
2366
2412
Q (author = bob ) |
2367
- Q (extra__b = bob ))]) ,
2413
+ Q (extra__b = bob ))]),
2368
2414
"1,2,3,4" )
2369
2415
2370
2416
# Susan & Karl related books
2371
- self .assertEqual (u"," .join ([str (b ) for b in Book .objects .filter (
2372
- Q (extra__a__all = [karl , susan ] ) |
2373
- Q (author__all = [karl , susan ] ) |
2374
- Q (extra__b__all = [karl .to_dbref (), susan .to_dbref ()] )
2375
- ) ] ) , "1" )
2417
+ self .assertEqual (
2418
+ u"," .join ([str (b ) for b in Book .objects .filter (
2419
+ Q (extra__a__all = [karl , susan ]) |
2420
+ Q (author__all = [karl , susan ]) |
2421
+ Q (extra__b__all = [karl .to_dbref (), susan .to_dbref ()]))]),
2422
+ "1" )
2376
2423
2377
2424
# $Where
2378
2425
self .assertEqual (
@@ -2422,6 +2469,5 @@ def __init__(self, id, name):
2422
2469
self .assertTrue (a != somethingElse )
2423
2470
2424
2471
2425
-
2426
2472
if __name__ == '__main__' :
2427
2473
unittest .main ()
0 commit comments