Fixed #24017 -- Added python_2_unicode_compatible in db/migrations
This commit is contained in:
parent
653a3a4e18
commit
9a23470072
|
@ -3,8 +3,10 @@ from collections import deque
|
|||
|
||||
from django.db.migrations.state import ProjectState
|
||||
from django.utils.datastructures import OrderedSet
|
||||
from django.utils.encoding import python_2_unicode_compatible
|
||||
|
||||
|
||||
@python_2_unicode_compatible
|
||||
class MigrationGraph(object):
|
||||
"""
|
||||
Represents the digraph of all migrations in a project.
|
||||
|
@ -178,6 +180,7 @@ class CircularDependencyError(Exception):
|
|||
pass
|
||||
|
||||
|
||||
@python_2_unicode_compatible
|
||||
class NodeNotFoundError(LookupError):
|
||||
"""
|
||||
Raised when an attempt on a node is made that is not available in the graph.
|
||||
|
@ -190,7 +193,5 @@ class NodeNotFoundError(LookupError):
|
|||
def __str__(self):
|
||||
return self.message
|
||||
|
||||
__unicode__ = __str__
|
||||
|
||||
def __repr__(self):
|
||||
return "NodeNotFoundError(%r)" % self.node
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
from __future__ import unicode_literals
|
||||
from django.db.transaction import atomic
|
||||
from django.utils.encoding import python_2_unicode_compatible
|
||||
|
||||
|
||||
@python_2_unicode_compatible
|
||||
class Migration(object):
|
||||
"""
|
||||
The base class for all migrations.
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from django.test import TestCase
|
||||
from django.db.migrations.graph import CircularDependencyError, MigrationGraph, NodeNotFoundError
|
||||
from django.utils.encoding import force_text
|
||||
|
||||
|
||||
class GraphTests(TestCase):
|
||||
|
@ -213,7 +214,7 @@ class GraphTests(TestCase):
|
|||
/ \
|
||||
app_c: 0001<- <------------- x 0002
|
||||
|
||||
And apply sqashing on app_c.
|
||||
And apply squashing on app_c.
|
||||
"""
|
||||
graph = MigrationGraph()
|
||||
|
||||
|
@ -229,3 +230,18 @@ class GraphTests(TestCase):
|
|||
|
||||
with self.assertRaises(CircularDependencyError):
|
||||
graph.forwards_plan(("app_c", "0001_squashed_0002"))
|
||||
|
||||
def test_stringify(self):
|
||||
graph = MigrationGraph()
|
||||
self.assertEqual(force_text(graph), "Graph: 0 nodes, 0 edges")
|
||||
|
||||
graph.add_node(("app_a", "0001"), None)
|
||||
graph.add_node(("app_a", "0002"), None)
|
||||
graph.add_node(("app_a", "0003"), None)
|
||||
graph.add_node(("app_b", "0001"), None)
|
||||
graph.add_node(("app_b", "0002"), None)
|
||||
graph.add_dependency("app_a.0002", ("app_a", "0002"), ("app_a", "0001"))
|
||||
graph.add_dependency("app_a.0003", ("app_a", "0003"), ("app_a", "0002"))
|
||||
graph.add_dependency("app_a.0003", ("app_a", "0003"), ("app_b", "0002"))
|
||||
|
||||
self.assertEqual(force_text(graph), "Graph: 5 nodes, 3 edges")
|
||||
|
|
Loading…
Reference in New Issue