Removed use of _get_subclasses favouring get_document

_get_subclasses not actually required and causes issues
where Base Classes aren't imported but dont actually
need to be.

Fixes #271
This commit is contained in:
Ross Lawley
2011-11-30 07:55:33 -08:00
parent fdc385ea33
commit beacfae400
6 changed files with 11 additions and 70 deletions

View File

@@ -158,29 +158,6 @@ class DocumentTest(unittest.TestCase):
}
self.assertEqual(Dog._superclasses, dog_superclasses)
def test_get_subclasses(self):
"""Ensure that the correct list of subclasses is retrieved by the
_get_subclasses method.
"""
class Animal(Document): pass
class Fish(Animal): pass
class Mammal(Animal): pass
class Human(Mammal): pass
class Dog(Mammal): pass
mammal_subclasses = {
'Animal.Mammal.Dog': Dog,
'Animal.Mammal.Human': Human
}
self.assertEqual(Mammal._get_subclasses(), mammal_subclasses)
animal_subclasses = {
'Animal.Fish': Fish,
'Animal.Mammal': Mammal,
'Animal.Mammal.Dog': Dog,
'Animal.Mammal.Human': Human
}
self.assertEqual(Animal._get_subclasses(), animal_subclasses)
def test_external_super_and_sub_classes(self):
"""Ensure that the correct list of sub and super classes is assembled.
@@ -202,20 +179,6 @@ class DocumentTest(unittest.TestCase):
}
self.assertEqual(Dog._superclasses, dog_superclasses)
animal_subclasses = {
'Base.Animal.Fish': Fish,
'Base.Animal.Mammal': Mammal,
'Base.Animal.Mammal.Dog': Dog,
'Base.Animal.Mammal.Human': Human
}
self.assertEqual(Animal._get_subclasses(), animal_subclasses)
mammal_subclasses = {
'Base.Animal.Mammal.Dog': Dog,
'Base.Animal.Mammal.Human': Human
}
self.assertEqual(Mammal._get_subclasses(), mammal_subclasses)
Base.drop_collection()
h = Human()
@@ -1014,10 +977,8 @@ class DocumentTest(unittest.TestCase):
# Mimic Place and NicePlace definitions being in a different file
# and the NicePlace model not being imported in at query time.
@classmethod
def _get_subclasses(cls):
return {}
Place._get_subclasses = _get_subclasses
from mongoengine.base import _document_registry
del(_document_registry['Place.NicePlace'])
def query_without_importing_nice_place():
print Place.objects.all()