class LevelsTest(ut.TestCase): def setUp(self): self.dispatcher = Dispatcher('units.info', CONFIG, Session) def levels(self, *args): levels = [] for objs in self.dispatcher.levels(*args): levels.append([obj.name for obj in objs]) return levels def test_produces_correct_number_of_levels(self): deps = self.dispatcher.dependencies([pdbs.Loader]) val = self.levels(deps, [], True) assert val == [['pdbs.info'], ['pdbs.obsolete']] def test_has_no_excluded_stages(self): deps = self.dispatcher.dependencies([pdbs.Loader]) val = self.levels(deps, ['pdbs.obsolete'], []) assert ['pdbs.obsolete'] not in val assert val == [['pdbs.info']] def test_will_always_have_allowed_stages(self): deps = self.dispatcher.dependencies([pdbs.Loader]) val = self.levels(deps, ['pdbs.obsolete'], ['pdbs.obsolete']) assert val == [['pdbs.info'], ['pdbs.obsolete']]
class DependenciesTest(ut.TestCase): def setUp(self): self.dispatcher = Dispatcher('units.info', CONFIG, Session) def test_it_can_compute_a_dependency_graph(self): val = self.dispatcher.dependencies([units.InfoLoader]) assert val == { units.InfoLoader: set([down.Downloader, pdbs.InfoLoader]), pdbs.InfoLoader: set([]), down.Downloader: set([]), } def test_it_computes_dependencies_for_stage_container(self): val = self.dispatcher.dependencies([pdbs.Loader]) assert val == { pdbs.InfoLoader: set([]), pdbs.ObsoleteLoader: set([pdbs.InfoLoader]), } def test_it_computes_dependencies_for_several(self): val = self.dispatcher.dependencies([pdbs.Loader, units.InfoLoader]) assert val == { pdbs.InfoLoader: set([]), down.Downloader: set([]), pdbs.ObsoleteLoader: set([pdbs.InfoLoader]), units.InfoLoader: set([down.Downloader, pdbs.InfoLoader]), } def test_it_computes_dependencies_for_nested_containers(self): val = self.dispatcher.dependencies([ifes.Loader]) assert val[ifes.InfoLoader] == set([ units.InfoLoader, units.DistancesLoader, units.CenterLoader, units.RotationLoader, units.IncompleteLoader, units.CoordinateLoader, chains.InfoLoader, chains.SpeciesLoader, interactions.PairwiseLoader, interactions.FlankingLoader, interactions.SummaryLoader, ])