def test_proctree_getpaths(set1): # hide # p15 -> p16 -> p17 -> 19 # \_ p18_/ \_ p20 pt = ProcTree() pt.init() assert pt.getPaths(set1.p15) == [] assert pt.getPaths(set1.p19) == [[set1.p17, set1.p16, set1.p15], [set1.p17, set1.p18, set1.p16, set1.p15]] assert pt.getPaths(set1.p20) == [[set1.p17, set1.p16, set1.p15], [set1.p17, set1.p18, set1.p16, set1.p15]] # assert pt.getPaths(set1.p19, check_hide = True) == [ # [set1.p17, set1.p15], [set1.p17, set1.p18, set1.p15]] # assert pt.getPaths(set1.p20, check_hide = True) == [ # [set1.p17, set1.p15], [set1.p17, set1.p18, set1.p15]] # circulic dependence p21 = Proc() p22 = Proc() p23 = Proc() # p21 -> p22 -> p23 -> p21 p21.depends = p23 p23.depends = p22 p22.depends = p21 pt = ProcTree() pt.init() with pytest.raises(ProcTreeParseError): pt.getPaths(p23)
def testGetPaths(self, procs, proc, paths, exception=None): for p in procs: ProcTree.register(p) pt = ProcTree() if exception: self.assertRaises(ProcTreeParseError, pt.getPaths, proc) else: ps = pt.getPaths(proc) self.assertListEqual(ps, paths)