def test_replace_admin_on_unregistered_model(self): """Test that calling `replace_admin_for_models` with a model that isn't registered in admin is a no-op. """ replace_admin_for_models([self.model], self.site) self.assertNotIn(self.model, self.site._registry)
def test_replace_default_admin_on_registered_model(self): """Test that registering a model without specifying own ModelAdmin class still results in overridden admin class. """ self.site.register(self.model) replace_admin_for_models([self.model], self.site) self.assertIn(self.model, self.site._registry) self.assertIn(VersionLockAdminMixin, self.site._registry[self.model].__class__.mro())
def test_replace_admin_again(self): """Test that, if a model's admin class already subclasses VersionLockAdminMixin, nothing happens. """ version_admin = version_lock_admin_factory(self.admin_class) self.site.register(self.model, version_admin) replace_admin_for_models([self.model], self.site) self.assertIn(self.model, self.site._registry) self.assertEqual(self.site._registry[self.model].__class__, version_admin)
def test_replace_admin_on_registered_models(self): self.site.register(self.model, self.admin_class) self.site.register(Answer, self.admin_class) models = [self.model, Answer] replace_admin_for_models(models, self.site) for model in models: self.assertIn(model, self.site._registry) self.assertIn(self.admin_class, self.site._registry[model].__class__.mro()) self.assertIn(VersionLockAdminMixin, self.site._registry[model].__class__.mro())
def test_replace_admin_on_registered_models_default_site(self): with patch.object(djangocms_version_locking.helpers, '_replace_admin_for_model') as mock: replace_admin_for_models([PollContent]) mock.assert_called_with(admin.site._registry[PollContent], admin.site)