Fixed ListField bug, added ReferenceField + tests
This commit is contained in:
		| @@ -231,6 +231,36 @@ class DocumentTest(unittest.TestCase): | ||||
|         # Ensure that the 'details' embedded object saved correctly | ||||
|         self.assertEqual(employee_obj['details']['position'], 'Developer') | ||||
|  | ||||
|     def test_save_reference(self): | ||||
|         """Ensure that a document reference field may be saved in the database. | ||||
|         """ | ||||
|          | ||||
|         class BlogPost(Document): | ||||
|             meta = {'collection': 'blogpost_1'} | ||||
|             content = StringField() | ||||
|             author = ReferenceField(self.Person) | ||||
|  | ||||
|         self.db.drop_collection(BlogPost._meta['collection']) | ||||
|  | ||||
|         author = self.Person(name='Test User') | ||||
|         author.save() | ||||
|  | ||||
|         post = BlogPost(content='Watched some TV today... how exciting.') | ||||
|         post.author = author | ||||
|         post.save() | ||||
|  | ||||
|         post_obj = BlogPost.objects.find_one() | ||||
|         self.assertTrue(isinstance(post_obj.author, self.Person)) | ||||
|         self.assertEqual(post_obj.author.name, 'Test User') | ||||
|  | ||||
|         post_obj.author.age = 25 | ||||
|         post_obj.author.save() | ||||
|  | ||||
|         author = self.Person.objects.find_one(name='Test User') | ||||
|         self.assertEqual(author.age, 25) | ||||
|  | ||||
|         self.db.drop_collection(BlogPost._meta['collection']) | ||||
|  | ||||
|     def tearDown(self): | ||||
|         self.db.drop_collection(self.Person._meta['collection']) | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user