From cda5745df0e9301c65e13f552ee19a4bf0490997 Mon Sep 17 00:00:00 2001 From: Simon Charette Date: Tue, 15 Apr 2014 18:54:30 -0400 Subject: [PATCH] [1.7.x] Fixed #22447 -- Make sure custom model bases can be migrated. Thanks to cdestigter for the report. Backport of 390f888745 from master --- tests/migrations/models.py | 9 +++++++++ tests/migrations/test_state.py | 8 ++++++++ 2 files changed, 17 insertions(+) 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,))