def test_nested_dependencies(self): # a depends on b depends on c depends on d dm = {"a": ["b", "c", "d"], "b": ["c", "d"], "c": ["d"]} self.assertEqual(all_dependencies("b", "a", dependency_map=dm), ["a", "b", "c", "d"]) self.assertEqual(all_dependencies("c", "a", dependency_map=dm), ["a", "b", "c", "d"])
def test_missing_entry(self): # a depends on b, which is missing dm = {"a": ["b"]} self.assertEqual(all_dependencies("a", dependency_map=dm), ["a", "b"]) self.assertEqual(all_dependencies("a", "b", dependency_map=dm), ["a", "b"]) self.assertEqual(all_dependencies("b", dependency_map=dm), ["b"])
def test_two_dependencies(self): dm = {"a": ["c"], "b": ["c"], "c": []} # suppose a and b both depend on c. Then we want to build a and b before c... self.assertEqual(all_dependencies("a", "b", dependency_map=dm), ["a", "b", "c"]) # ... but relative order is preserved. self.assertEqual(all_dependencies("b", "a", dependency_map=dm), ["b", "a", "c"])
def test_all_dependencies(self): dm = {"a": [], "b": ["a"], "c": ["b", "a"], "d": ["a"], "e": ["a"], "f": []} self.assertEqual(all_dependencies("a", dependency_map=dm), ["a"]) self.assertEqual(all_dependencies("b", dependency_map=dm), ["b", "a"]) self.assertEqual(all_dependencies("c", "a", "b", dependency_map=dm), ["c", "b", "a"]) self.assertEqual(all_dependencies("d", dependency_map=dm), ["d", "a"]) self.assertEqual(all_dependencies("d", "f", "c", dependency_map=dm), ["d", "f", "c", "b", "a"]) self.assertEqual(all_dependencies("a", "b", dependency_map=dm), ["b", "a"]) self.assertEqual(all_dependencies("b", "b", dependency_map=dm), ["b", "a"])
def test_all_dependencies(self): dm = {"a": [], "b": ["a"], "c": ["b", "a"], "d": ["a"], "e": ["a"], "f": []} self.assertEqual(all_dependencies("a", dependency_map=dm), []) self.assertEqual(all_dependencies("b", dependency_map=dm), ["a"]) self.assertEqual(all_dependencies("c", "a", "b", dependency_map=dm), ["b", "a"]) self.assertEqual(all_dependencies("d", dependency_map=dm), ["a"]) self.assertEqual(all_dependencies("d", "f", "c", dependency_map=dm), ["b", "a"]) self.assertEqual(all_dependencies("a", "b", dependency_map=dm), ["a"]) self.assertEqual(all_dependencies("b", "b", dependency_map=dm), ["a"])