Example #1
0
 def assertCircularDependency(self, trace, target, graph):
     "Custom assertion that checks a circular dependency is detected correctly."
     self.assertRaises(exceptions.CircularDependency, depends, target, lambda n: graph[n])
     try:
         depends(target, lambda n: graph[n])
     except exceptions.CircularDependency, e:
         self.assertEqual(trace, e.trace)
Example #2
0
 def assertCircularDependency(self, trace, target, graph):
     self.assertRaises(exceptions.CircularDependency, depends, target,
                       lambda n: graph[n])
     try:
         depends(target, lambda n: graph[n])
     except exceptions.CircularDependency, e:
         self.assertEqual(trace, e.trace)
Example #3
0
 def assertCircularDependency(self, trace, target, graph):
     self.assertRaises(exceptions.CircularDependency,
                       depends, target, lambda n: graph[n])
     try:
         depends(target, lambda n: graph[n])
     except exceptions.CircularDependency, e:
         self.assertEqual(trace, e.trace)
Example #4
0
 def test_depends(self):
     graph = {"A1": []}
     self.assertEqual(["A1"], depends("A1", lambda n: graph[n]))
     graph = {"A1": [], "A2": ["A1"], "A3": ["A2"]}
     self.assertEqual(["A1", "A2", "A3"], depends("A3", lambda n: graph[n]))
     graph = {"A1": [], "A2": ["A1"], "A3": ["A2", "A1"]}
     self.assertEqual(["A1", "A2", "A3"], depends("A3", lambda n: graph[n]))
     graph = {"A1": [], "A2": ["A1"], "A3": ["A2", "A1", "B1"], "B1": []}
     self.assertEqual(["A1", "A2", "B1", "A3"], depends("A3", lambda n: graph[n]))
     graph = {"A1": [], "A2": ["A1"], "A3": ["A2", "A1", "B2"], "B1": [], "B2": ["B1"]}
     self.assertEqual(["A1", "A2", "B1", "B2", "A3"], depends("A3", lambda n: graph[n]))
     graph = {"A1": [], "A2": ["A1", "B1"], "A3": ["A2"], "B1": ["A1"]}
     self.assertEqual(["A1", "B1", "A2", "A3"], depends("A3", lambda n: graph[n]))
     graph = {"A1": [], "A2": ["A1"], "A3": ["A2", "A1", "B2"], "B1": [], "B2": ["B1", "C1"], "C1": ["B1"]}
     self.assertEqual(["A1", "A2", "B1", "C1", "B2", "A3"], depends("A3", lambda n: graph[n]))
     graph = {
         "A1": [],
         "A2": ["A1"],
         "A3": ["A2", "B2", "A1", "C1"],
         "B1": ["A1"],
         "B2": ["B1", "C2", "A1"],
         "C1": ["B1"],
         "C2": ["C1", "A1"],
         "C3": ["C2"],
     }
     self.assertEqual(["A1", "A2", "B1", "C1", "C2", "B2", "A3"], depends("A3", lambda n: graph[n]))
Example #5
0
 def test_depends(self):
     graph = {'A1': []}
     self.assertEqual(['A1'],
                      depends('A1', lambda n: graph[n]))
     graph = {'A1': [],
              'A2': ['A1'],
              'A3': ['A2']}
     self.assertEqual(['A1', 'A2', 'A3'],
                      depends('A3', lambda n: graph[n]))
     graph = {'A1': [],
              'A2': ['A1'],
              'A3': ['A2', 'A1']}
     self.assertEqual(['A1', 'A2', 'A3'],
                      depends('A3', lambda n: graph[n]))
     graph = {'A1': [],
              'A2': ['A1'],
              'A3': ['A2', 'A1', 'B1'],
              'B1': []}
     self.assertEqual(
         ['B1', 'A1', 'A2', 'A3'],
         depends('A3', lambda n: graph[n]),
     )
     graph = {'A1': [],
              'A2': ['A1'],
              'A3': ['A2', 'A1', 'B2'],
              'B1': [],
              'B2': ['B1']}
     self.assertEqual(
         ['B1', 'B2', 'A1', 'A2', 'A3'],
         depends('A3', lambda n: graph[n]),
     )
     graph = {'A1': [],
              'A2': ['A1', 'B1'],
              'A3': ['A2'],
              'B1': ['A1']}
     self.assertEqual(['A1', 'B1', 'A2', 'A3'],
                      depends('A3', lambda n: graph[n]))
     graph = {'A1': [],
              'A2': ['A1'],
              'A3': ['A2', 'A1', 'B2'],
              'B1': [],
              'B2': ['B1', 'C1'],
              'C1': ['B1']}
     self.assertEqual(
         ['B1', 'C1', 'B2', 'A1', 'A2', 'A3'],
         depends('A3', lambda n: graph[n]),
     )
     graph = {'A1': [],
              'A2': ['A1'],
              'A3': ['A2', 'B2', 'A1', 'C1'],
              'B1': ['A1'],
              'B2': ['B1', 'C2', 'A1'],
              'C1': ['B1'],
              'C2': ['C1', 'A1'],
              'C3': ['C2']}
     self.assertEqual(
         ['A1', 'B1', 'C1', 'C2', 'B2', 'A2', 'A3'],
         depends('A3', lambda n: graph[n]),
     )
Example #6
0
 def test_depends(self):
     graph = {'A1': []}
     self.assertEqual(['A1'],
                      depends('A1', lambda n: graph[n]))
     graph = {'A1': [],
              'A2': ['A1'],
              'A3': ['A2']}
     self.assertEqual(['A1', 'A2', 'A3'],
                      depends('A3', lambda n: graph[n]))
     graph = {'A1': [],
              'A2': ['A1'],
              'A3': ['A2', 'A1']}
     self.assertEqual(['A1', 'A2', 'A3'],
                      depends('A3', lambda n: graph[n]))
     graph = {'A1': [],
              'A2': ['A1'],
              'A3': ['A2', 'A1', 'B1'],
              'B1': []}
     self.assertEqual(
         ['B1', 'A1', 'A2', 'A3'],
         depends('A3', lambda n: graph[n]),
     )
     graph = {'A1': [],
              'A2': ['A1'],
              'A3': ['A2', 'A1', 'B2'],
              'B1': [],
              'B2': ['B1']}
     self.assertEqual(
         ['B1', 'B2', 'A1', 'A2', 'A3'],
         depends('A3', lambda n: graph[n]),
     )
     graph = {'A1': [],
              'A2': ['A1', 'B1'],
              'A3': ['A2'],
              'B1': ['A1']}
     self.assertEqual(['A1', 'B1', 'A2', 'A3'],
                      depends('A3', lambda n: graph[n]))
     graph = {'A1': [],
              'A2': ['A1'],
              'A3': ['A2', 'A1', 'B2'],
              'B1': [],
              'B2': ['B1', 'C1'],
              'C1': ['B1']}
     self.assertEqual(
         ['B1', 'C1', 'B2', 'A1', 'A2', 'A3'],
         depends('A3', lambda n: graph[n]),
     )
     graph = {'A1': [],
              'A2': ['A1'],
              'A3': ['A2', 'B2', 'A1', 'C1'],
              'B1': ['A1'],
              'B2': ['B1', 'C2', 'A1'],
              'C1': ['B1'],
              'C2': ['C1', 'A1'],
              'C3': ['C2']}
     self.assertEqual(
         ['A1', 'B1', 'C1', 'C2', 'B2', 'A2', 'A3'],
         depends('A3', lambda n: graph[n]),
     )
Example #7
0
    def forwards_plan(self):
        """
        Returns a list of Migration objects to be applied, in order.

        This list includes `self`, which will be applied last.
        """
        return depends(self, lambda x: x.dependencies)
Example #8
0
    def forwards_plan(self):
        """
        Returns a list of Migration objects to be applied, in order.

        This list includes `self`, which will be applied last.
        """
        return depends(self, lambda x: x.dependencies)
Example #9
0
 def _backwards_plan(self):
     return depends(self, lambda x: x.dependents)
Example #10
0
 def _backwards_plan(self):
     return depends(self, lambda x: x.dependents)
Example #11
0
 def _backwards_plan(self):
     return depends(self, self.__class__.dependents)
Example #12
0
 def _backwards_plan(self):
     return depends(self, self.__class__.dependents)