diff options
-rw-r--r-- | test/base/test_dependency.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/base/test_dependency.py b/test/base/test_dependency.py index b16516f15..a06bd5a51 100644 --- a/test/base/test_dependency.py +++ b/test/base/test_dependency.py @@ -14,6 +14,11 @@ class DependencySortTest(fixtures.TestBase): result = list(topological.sort(tuples, allitems)) assert conforms_partial_ordering(tuples, result) + def assert_sort_deterministic(self, tuples, allitems, expected): + result = list(topological.sort(tuples, allitems, deterministic_order=True)) + assert conforms_partial_ordering(tuples, result) + assert result == expected + def _nodes_from_tuples(self, tups): s = set() for tup in tups: @@ -63,6 +68,30 @@ class DependencySortTest(fixtures.TestBase): (node3, node2)] self.assert_sort(tuples) + def test_sort_deterministic_one(self): + node1 = 'node1' + node2 = 'node2' + node3 = 'node3' + node4 = 'node4' + node5 = 'node5' + node6 = 'node6' + allitems = [node6, node5, node4, node3, node2, node1] + tuples = [(node6, node5), (node2, node1)] + expected = [node6, node4, node3, node2, node5, node1] + self.assert_sort_deterministic(tuples, allitems, expected) + + def test_sort_deterministic_two(self): + node1 = 1 + node2 = 2 + node3 = 3 + node4 = 4 + node5 = 5 + node6 = 6 + allitems = [node6, node5, node4, node3, node2, node1] + tuples = [(node6, node5), (node4, node3), (node2, node1)] + expected = [node6, node4, node2, node5, node3, node1] + self.assert_sort_deterministic(tuples, allitems, expected) + def test_raise_on_cycle_one(self): node1 = 'node1' node2 = 'node2' |