diff --git a/tests/migrations/models.py b/tests/migrations/models.py index f76a84054f..87165ab6e3 100644 --- a/tests/migrations/models.py +++ b/tests/migrations/models.py @@ -3,9 +3,18 @@ from __future__ import unicode_literals from django.apps.registry import Apps from django.db import models +from django.utils import six from django.utils.encoding import python_2_unicode_compatible +class CustomModelBase(models.base.ModelBase): + pass + + +class ModelWithCustomBase(six.with_metaclass(CustomModelBase, models.Model)): + pass + + @python_2_unicode_compatible class UnicodeModel(models.Model): title = models.CharField('ÚÑÍ¢ÓÐÉ', max_length=20, default='“Ðjáñgó”') diff --git a/tests/migrations/test_state.py b/tests/migrations/test_state.py index 8e55df6be7..9a97613485 100644 --- a/tests/migrations/test_state.py +++ b/tests/migrations/test_state.py @@ -3,6 +3,8 @@ from django.db import models from django.db.migrations.state import ProjectState, ModelState, InvalidBasesError from django.test import TestCase +from .models import ModelWithCustomBase + class StateTests(TestCase): """ @@ -335,3 +337,9 @@ class StateTests(TestCase): project_state.add_model_state(ModelState.from_model(Magazine)) with self.assertRaises(ValueError): rendered_state = project_state.render() + + +class ModelStateTests(TestCase): + def test_custom_model_base(self): + state = ModelState.from_model(ModelWithCustomBase) + self.assertEqual(state.bases, (models.Model,))