'Ensure that an abstract class instance cannot be used in the
reference of that abstract class.'

def test_reference_abstract_class(self):

    class Sibling(Document, ):
        name = StringField()
        meta = {'abstract': True}
    class Sister(Sibling, ):
        pass
    class Brother(Sibling, ):
        sibling = ReferenceField(Sibling)
    Sister.drop_collection()
    Brother.drop_collection()
    sister = Sibling(name='Alice')
    brother = Brother(name='Bob', sibling=sister)
    self.assertRaises(ValidationError, brother.save)
