Commit 9a234700 authored by Josh Schneier's avatar Josh Schneier Committed by Tim Graham
Browse files

Fixed #24017 -- Added python_2_unicode_compatible in db/migrations

parent 653a3a4e
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -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
+2 −0
Original line number Diff line number Diff line
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.
+17 −1
Original line number Diff line number Diff line
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")