def test_proctree_getends(set2): # p15 -> p16 -> p17 -> 19 # p14 _/ \_ p18_/ \_ p20 # hide pt = ProcTree() pt.init() pt.setStarts([set2.p14, set2.p15]) assert set(pt.getEnds()) == {set2.p19, set2.p20} assert set(pt.ends) == {set2.p19, set2.p20} assert set(pt.getEnds()) == {set2.p19, set2.p20} #set2.p19.hide = True pt.ends = []
def testGetEnds(self, procs, starts, ends, exception=None, msg=None): for p in procs: ProcTree.register(p) pt = ProcTree() pt.setStarts(starts) if exception: self.assertRaisesRegex(ProcTreeParseError, msg, pt.getEnds) else: self.assertCountEqual(pt.getEnds(), ends)
def test_proctree_getends_failed(): p1 = Proc() p2 = Proc() p2.depends = p1 ProcTree.register(p1) pt = ProcTree() pt.init() with pytest.raises(ProcTreeParseError): #Failed to determine end processes by start processes pt.getEnds() p3 = Proc() p3.depends = p2 pt = ProcTree() pt.init() pt.setStarts([p3]) with pytest.raises(ProcTreeParseError): # Failed to determine end processes, one of the paths cannot go through: 'p3 <- p2 <- p1' pt.getEnds()