diff --git a/modeltranslation/tests/models.py b/modeltranslation/tests/models.py index bc25d9b..36f104b 100644 --- a/modeltranslation/tests/models.py +++ b/modeltranslation/tests/models.py @@ -314,26 +314,29 @@ class CustomManager2TestModel(models.Model): class CustomManagerAbstract(models.Manager): - def to_translate(self): - return self.get_queryset().filter(needs_translation=True) + pass class CustomManagerBaseModel(models.Model): needs_translation = models.BooleanField(default=False) - objects = models.Manager() + objects = models.Manager() # ensures objects is the default manager translations = CustomManagerAbstract() class Meta: abstract = True -class CustomAbstractManagerTestModel(CustomManagerBaseModel): +class CustomManagerChildTestModel(CustomManagerBaseModel): title = models.CharField(ugettext_lazy('title'), max_length=255) objects = CustomManager2() +class PlainChildTestModel(CustomManagerBaseModel): + title = models.CharField(ugettext_lazy('title'), max_length=255) + + # ######### Required fields testing class RequiredModel(models.Model): diff --git a/modeltranslation/tests/tests.py b/modeltranslation/tests/tests.py index 979a8c2..ee7f6f9 100644 --- a/modeltranslation/tests/tests.py +++ b/modeltranslation/tests/tests.py @@ -40,7 +40,7 @@ models = translation = None request = None # How many models are registered for tests. -TEST_MODELS = 32 + (1 if MIGRATIONS else 0) +TEST_MODELS = 33 + (1 if MIGRATIONS else 0) class reload_override_settings(override_settings): @@ -2731,12 +2731,17 @@ class TestManager(ModeltranslationTestBase): manager = models.CustomManagerTestModel.another_mgr_name self.assertTrue(isinstance(manager, MultilingualManager)) - def test_default_manager_for_inherited_models(self): + def test_default_manager_for_inherited_models_with_custom_manager(self): """Test if default manager is still set from local managers""" - manager = models.CustomAbstractManagerTestModel._meta.default_manager + manager = models.CustomManagerChildTestModel._meta.default_manager self.assertEqual('objects', manager.name) self.assertTrue(isinstance(manager, MultilingualManager)) - self.assertTrue(isinstance(models.CustomAbstractManagerTestModel.translations, MultilingualManager)) + self.assertTrue(isinstance(models.CustomManagerChildTestModel.translations, MultilingualManager)) + + def test_default_manager_for_inherited_models(self): + manager = models.PlainChildTestModel._meta.default_manager + self.assertEqual('objects', manager.name) + self.assertTrue(isinstance(models.PlainChildTestModel.translations, MultilingualManager)) def test_custom_manager2(self): """Test if user-defined queryset is still working""" diff --git a/modeltranslation/tests/translation.py b/modeltranslation/tests/translation.py index 3f98fad..a101c37 100644 --- a/modeltranslation/tests/translation.py +++ b/modeltranslation/tests/translation.py @@ -137,7 +137,8 @@ class ManagerTestModelTranslationOptions(TranslationOptions): @register([ models.CustomManagerTestModel, models.CustomManager2TestModel, - models.CustomAbstractManagerTestModel + models.CustomManagerChildTestModel, + models.PlainChildTestModel ]) class CustomManagerTestModelTranslationOptions(TranslationOptions): fields = ('title',)