def test_cycle_only_before(self):
        after = {}
        before = {'b': ['a'], 'a': ['b']}
        sort = Sort(after, before)

        with self.assertRaises(CMError) as context:
            sorted_list = sort.sort()
    def test_simple(self):
        after = {'b': ['a'], 'c': ['b']}
        before = {'a': ['b'], 'b': ['c']}
        sort = Sort(after, before)
        sorted_list = sort.sort()

        CMDependencySortTest._assert_orderings(after, before, sorted_list)
    def test_mandbc(self):
        after = {'a': ['m'], 'b': ['d']}
        before = {'a': ['b', 'c', 'd', 'n'], 'b': ['c']}
        sort = Sort(after, before)
        sorted_list = sort.sort()

        CMDependencySortTest._assert_orderings(after, before, sorted_list)
    def test_one_no_deps(self):
        sort = Sort({'a': []})
        sorted_list = sort.sort()
        assert sorted_list == ['a']

        sort = Sort(None, {'a': []})
        sorted_list = sort.sort()
        assert sorted_list == ['a']
    def test_both_no_deps(self):
        sort = Sort({'a': []}, {'a': []})
        sorted_list = sort.sort()
        assert sorted_list == ['a']

        sort = Sort({'a': [], 'b': []}, {'a': [], 'b': []})
        sorted_list = sort.sort()

        assert len(sorted_list) == 2
        assert 'a' in sorted_list
        assert 'b' in sorted_list
示例#6
0
    def _load_dependencies(self):
        before_graph = {}
        after_graph = {}

        for handler in self._handlers.values():
            deps_filename = '{}/{}.deps'.format(self._plugins_path, handler)
            before_list, after_list = self._read_dependency_file(deps_filename)

            for before_dep in before_list:
                if not self._handlers.get(before_dep, None):
                    raise CMError(
                        'Unexisting handler {} referred in handler {}\'s "Before" dependencies'
                        .format(before_dep, handler))
            for after_dep in after_list:
                if not self._handlers.get(after_dep, None):
                    raise CMError(
                        'Unexisting handler {} referred in handler {}\'s "After" dependencies'
                        .format(after_dep, handler))

            before_graph[str(handler)] = before_list
            after_graph[str(handler)] = after_list

        sorter = CMDependencySort(after_graph, before_graph)
        self._sorted_handlers = sorter.sort()
 def test_empty(self):
     sort = Sort()
     sorted_list = sort.sort()
     assert sorted_list == []