def test_transitive_dependencies(self): filenames = ['a.py', 'b.py', 'a.html', 'a.txt'] deps = { 'a.py': ['b.py', 'a.txt'], 'b.py': ['c.py'], 'c.py': [], 'a.html': [], 'a.txt': [] } expected_deps = dependencies._reachable(deps) with mock.patch('dependencies.python_dependencies', side_effect=lambda x: set(deps.get(x, []))), \ mock.patch('dependencies.html_dependencies', side_effect=lambda x: set(deps.get(x, []))): transitive_deps = dependencies.transitive_dependencies(filenames) self.assertEqual(expected_deps, transitive_deps)
def test_reachable(self): graph = { 'a': set('b'), 'b': set('c'), 'c': set('d'), 'd': set(), } reachable_nodes = dependencies._reachable(graph) expected_nodes = { 'a': set('abcd'), 'b': set('bcd'), 'c': set('cd'), 'd': set('d') } self.assertEqual(expected_nodes, reachable_nodes)