summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/db/migrations/state.py3
-rw-r--r--tests/migrations/test_state.py10
2 files changed, 13 insertions, 0 deletions
diff --git a/django/db/migrations/state.py b/django/db/migrations/state.py
index 69bfbb2ab2..d27e5013b7 100644
--- a/django/db/migrations/state.py
+++ b/django/db/migrations/state.py
@@ -300,6 +300,9 @@ class ModelState(object):
return field
raise ValueError("No field called %s on model %s" % (name, self.name))
+ def __repr__(self):
+ return "<ModelState: '%s.%s'>" % (self.app_label, self.name)
+
def __eq__(self, other):
return (
(self.app_label == other.app_label) and
diff --git a/tests/migrations/test_state.py b/tests/migrations/test_state.py
index 45b3d363de..ebeaffb787 100644
--- a/tests/migrations/test_state.py
+++ b/tests/migrations/test_state.py
@@ -420,3 +420,13 @@ class ModelStateTests(TestCase):
state = ModelState('app', 'Model', [('name', field)])
Model = state.render(apps)
self.assertNotEqual(Model._meta.get_field('name'), field)
+
+ def test_repr(self):
+ field = models.CharField(max_length=1)
+ state = ModelState('app', 'Model', [('name', field)], bases=['app.A', 'app.B', 'app.C'])
+ self.assertEqual(repr(state), "<ModelState: 'app.Model'>")
+
+ project_state = ProjectState()
+ project_state.add_model_state(state)
+ with self.assertRaisesMessage(InvalidBasesError, "Cannot resolve bases for [<ModelState: 'app.Model'>]"):
+ project_state.render()