'Ensure save only sets / unsets changed fields.'

def test_save_only_changed_fields_recursive(self):

    class Comment(EmbeddedDocument, ):
        published = BooleanField(default=True)
    class User(self.Person, ):
        comments_dict = DictField()
        comments = ListField(EmbeddedDocumentField(Comment))
        active = BooleanField(default=True)
    User.drop_collection()
    person = User(name='Test    User', age=30, active=True)
    person.comments.append(Comment())
    person.save()
    person.reload()
    person = self.Person.objects.get()
    self.assertTrue(person.comments[0].published)
    person.comments[0].published = False
    person.save()
    person = self.Person.objects.get()
    self.assertFalse(person.comments[0].published)
    person.comments_dict['first_post'] = Comment()
    person.save()
    person = self.Person.objects.get()
    self.assertTrue(person.comments_dict['first_post'].published)
    person.comments_dict['first_post'].published = False
    person.save()
    person = self.Person.objects.get()
    self.assertFalse(person.comments_dict['first_post'].published)
