Ensure that ReferenceFields can reference their own documents.
(self)
| 1415 | assert group_obj.members[1].name == user2.name |
| 1416 | |
| 1417 | def test_recursive_reference(self): |
| 1418 | """Ensure that ReferenceFields can reference their own documents.""" |
| 1419 | |
| 1420 | class Employee(Document): |
| 1421 | name = StringField() |
| 1422 | boss = ReferenceField("self") |
| 1423 | friends = ListField(ReferenceField("self")) |
| 1424 | |
| 1425 | Employee.drop_collection() |
| 1426 | |
| 1427 | bill = Employee(name="Bill Lumbergh") |
| 1428 | bill.save() |
| 1429 | |
| 1430 | michael = Employee(name="Michael Bolton") |
| 1431 | michael.save() |
| 1432 | |
| 1433 | samir = Employee(name="Samir Nagheenanajar") |
| 1434 | samir.save() |
| 1435 | |
| 1436 | friends = [michael, samir] |
| 1437 | peter = Employee(name="Peter Gibbons", boss=bill, friends=friends) |
| 1438 | peter.save() |
| 1439 | |
| 1440 | peter = Employee.objects.with_id(peter.id) |
| 1441 | assert peter.boss == bill |
| 1442 | assert peter.friends == friends |
| 1443 | |
| 1444 | def test_recursive_embedding(self): |
| 1445 | """Ensure that EmbeddedDocumentFields can contain their own documents.""" |
nothing calls this directly
no test coverage detected