def test_instance_default_manager(self): def default_manager(instance): return ( type(instance.__class__._default_manager), instance.__class__._default_manager.model, ) plain_a = PlainA(field1="C1") plain_b = PlainB(field2="C1") plain_c = PlainC(field3="C1") model_2a = Model2A(field1="C1") model_2b = Model2B(field2="C1") model_2c = Model2C(field3="C1") self.assertEqual(default_manager(plain_a), (models.Manager, PlainA)) self.assertEqual(default_manager(plain_b), (models.Manager, PlainB)) self.assertEqual(default_manager(plain_c), (models.Manager, PlainC)) self.assertEqual(default_manager(model_2a), (PolymorphicManager, Model2A)) self.assertEqual(default_manager(model_2b), (PolymorphicManager, Model2B)) self.assertEqual(default_manager(model_2c), (PolymorphicManager, Model2C))
def test_contrib_guardian(self): # Regular Django inheritance should return the child model content type. obj = PlainC() ctype = get_polymorphic_base_content_type(obj) self.assertEqual(ctype.name, 'plain c') ctype = get_polymorphic_base_content_type(PlainC) self.assertEqual(ctype.name, 'plain c') # Polymorphic inheritance should return the parent model content type. obj = Model2D() ctype = get_polymorphic_base_content_type(obj) self.assertEqual(ctype.name, 'model2a') ctype = get_polymorphic_base_content_type(Model2D) self.assertEqual(ctype.name, 'model2a')