def test_remove_inter_dep(self): '''Test ability to remove a dependency in a subgraph''' group = ServiceGroup('GROUP') s1 = Service('alpha') s2 = Service('beta') s3 = Service('lambda') group.add_inter_dep(target=s1) group.add_inter_dep(target=s2) group.add_inter_dep(target=s3) group.add_inter_dep(base=s1, target=s3) group.add_inter_dep(base=s2, target=s3) group.remove_inter_dep('lambda') self.assertTrue(s1.has_parent_dep('sink')) self.assertTrue(s2.has_parent_dep('sink')) self.assertTrue(s1.has_child_dep('source')) self.assertTrue(s2.has_child_dep('source')) self.assertFalse(s1.has_parent_dep('lambda')) self.assertFalse(s2.has_parent_dep('lambda')) group.remove_inter_dep('alpha') self.assertFalse(group._source.has_parent_dep('alpha')) self.assertTrue(group._source.has_parent_dep('beta')) self.assertFalse(group._sink.has_child_dep('alpha')) self.assertTrue(group._sink.has_child_dep('beta')) group.remove_inter_dep('beta') self.assertFalse(group._source.parents) self.assertFalse(group._sink.children)